我想知道调用父类的子类调用父类中的重载方法是否会调用子类中的重载方法
class Parent {
void doStuff() {
}
void asd() {
doStuff();
}
}
class Child extends Parent {
void doStuff() {
// implementation
}
}
static void main(Args... args) {
new Child().asd(); -> does this invoke the doStuff with the implementation or the empty doStuff in the parent class?
}
答案 0 :(得分:0)
class Parent{
void doStuff(){
System.out.println("parent class");
}
void asd(){
doStuff();
}
}
class Child extends Parent(){
@Override
void doStuff(){
//super.asd();
System.out.println("child class");
}
}
/ ** *运行程序时,您将看到调用的两种方法 *一个来自父类,然后是子方法的覆盖方法。 *只需取消注释childs doStuff()中的super.asd()即可查看两个print。 ** /
public static void main(String [] args){
Child c = new Child();
c.doStuff(); // call methods
}