和视频中相同的代码为啥我的只显示“动物具有吃东西的能力”

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

神奇小超

2016-01-31 16:30

package project1;


public class Animal {

 public int age;

 public String name;

 public void eat(){

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

 }

 public Animal(){

System.out.println("Animal");

 }

}

 



package project1;


public class Dog extends Animal {


public Dog(){

System.out.println("Dog");

}

}


package project1;


public class Initail {

public static void main(String[] args) {

Dog dog= new Dog();

dog.age=10;

dog.name="xiaotian";

dog.eat();

}

}





写回答 关注

3回答

  • 一条小咸鱼
    2016-02-05 11:39:34

    只能说你看漏了

  • 11知足11
    2016-02-01 16:51:07

    你执行的结果应该是

    animal

    Dog

    动物具有吃东西的能力

    因为子类创建的对象会先执行父类的构造方法然后才执行自己的构造方法,最后再调用父类的eat()方法输出“动物具有吃东西的能力”

  • LemonNekoMK
    2016-01-31 17:17:54

    因为继承的父类调用子类代码的时候是不能调用子类独有的方法的

    你只要把你的Dog类中的方法Dog改名成Animal就可以了,这样就视为子类重写了父类的方法

    LemonN... 回复LemonN...

    其实我昨天也在这徘徊了好久。。。一直都不知道哪错了

    2016-01-31 17:23:09

    共 2 条回复 >

Java入门第二季 升级版

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

530559 学习 · 6091 问题

查看课程

相似问题