JAVA一个抽象类的问题

importp07.classexample.Animal;importp07.classexample.Bird;importp07.classexample.Pers... import p07.classexample.Animal;
import p07.classexample.Bird;
import p07.classexample.Person;
import p07.classexample.Student;

public class TestAbstractClass01 {
public static void main(String args[]){
Animal a=new Person();
a.eat();
Person p=new Person();
System.out.println(p.getAge());
Bird b=new Bird();
System.out.println(b.getAge());
System.out.println("-------------------");
Student aa=new Student(80);
System.out.println(aa.getAge());
}
}
-----------------------------------------------
public abstract class Animal {
private int age;
public Animal(){

}
public Animal(int age){
this.age=age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public abstract void eat();
}
----------------------------------------
public class Person extends Animal{
private int age;
public Person(){
super(80);
}
public Person(int age){
this.age=age;
}
public void eat(){
System.out.println("人在吃!");
}
}
我知道person类继承于animal而且animal是个抽象类,那么怎么解释a.eat()调用了子类的eat方法
展开
 我来答
568145421
2012-09-13 · 知道合伙人软件行家
568145421
知道合伙人软件行家
采纳数:1353 获赞数:6756

向TA提问 私信TA
展开全部
你好,你理解了多态就好理解这个了,就是一个多态的应用。
看你的调用代码:
Animal a=new Person();
a.eat();
你是用父类的引用a指向了子类的对象 new Person(),java有多态性,就体现在这里,运行时,会动态绑定到对应子类的方法中。
追问
能在说详细点吗!子类还隐式调用父类的eat  但我有个疑问父类是抽象类而且eat也是个抽象方法
听老师说父类的eat起着虚方法的作用,不理解虚方法是什么,而且百度也搜索不到JAVA的虚方法这个词
追答
你老师给你说的是C++里面的,准确的说就虚函数,因为Java是面向对象语言,所以把函数叫成了方法。这个你不要着急,仔细看看多态,多做几个练习,慢慢就理解了,初学,难免理解起来会困难。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式