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

下面是运行结果 为什么结果执行了两次ainimal构造方法 ?

public class Animal {

public int age=10;

public String name;

public void eat() {

System.out.println("动物具有吃东西的能力");

}

public Animal() {

System.out.println("Animal类执行了");

age=20;

}

}


Animal类执行了

animal age:20

Animal类执行了

Dog类执行了

动物具有吃东西的能力


提问者:PG_one 2017-10-11 22:04

个回答

  • qq_走夨旳背影_0
    2017-11-02 15:00:28

    因为在测试调用时先实例化了父类,然后又实例化了子类,实例化父类时会调用构造方法打印,实例化子类时,又会先实例化父类然后才会实例化子类,所以又会打印一句http://img4.mukewang.com/59fac2820001298511060475.jpg

  • 鱼我同乐
    2017-10-12 21:31:53

    你这个代码写的,谁能看下去  ,补全好吗 ,按格式来啊

  • qq_坝上的草_0
    2017-10-11 23:21:25

    因为继承会先调用父类的构造器,如果你有两个类继承这个父类,就会调用两次