问答详情
源自:9-4 Java 中的继承初始化顺序

求问为什么这里动物具有吃东西的能力是最后才输出的?

求问为什么这里动物具有吃东西的能力是最后才输出的?按照构造方法的先后顺序,eat方法是最先输出才对的啊,第二输出Animal方法,第三输出子类的Dog方法,为什么在这里eat方法是最后才输出的呢?  都是初始化块

提问者:Jushren 2018-05-18 11:07

个回答

  • 牙膏牙膏牙膏
    2018-05-18 13:45:18
    已采纳

    public void eat(){}是这个类的一个方法,需要对象.eat()才能使用,构造方法是在new一个对象的时候就会执行。

    所以,Dog dog = new Dog();这句话先执行了Dog的父类Animal的构造方法,然后执行了Dog这个类的构造方法。
    然后下面有一句,dog.eat();这句话才是执行eat方法,就是你说的“动物具有吃东西的能力”。