为了账号安全,请及时绑定邮箱和手机立即绑定

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

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 回答

只能说你看漏了

0 回复 有任何疑惑可以回复我~

你执行的结果应该是

animal

Dog

动物具有吃东西的能力

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

0 回复 有任何疑惑可以回复我~

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

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

0 回复 有任何疑惑可以回复我~
#1

LemonNekoMK

好吧说了那么多。。。意思就是。。。用多态的方式调用子类中的方法时只能调用子类从父类中继承或者重写的方法
2016-01-31 回复 有任何疑惑可以回复我~
#2

LemonNekoMK 回复 LemonNekoMK

其实我昨天也在这徘徊了好久。。。一直都不知道哪错了
2016-01-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信