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

来源:9-4 Java 中的继承初始化顺序

PG_one

2017-10-11 22:04

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类执行了

动物具有吃东西的能力


写回答 关注

3回答

  • 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

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

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530646 学习 · 6091 问题

查看课程

相似问题