如果我在父类中调用父方法,它是否会调用具有相同名称的子类方法

时间:2016-04-20 13:50:22

标签: java

我想知道调用父类的子类调用父类中的重载方法是否会调用子类中的重载方法

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?
}

1 个答案:

答案 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
}