【发布时间】:2021-03-05 11:05:00
【问题描述】:
示例取自here
class Human{
//Overridden method
public void eat()
{
System.out.println("Human is eating");
}
}
class Boy extends Human{
//Overriding method
public void eat(){
System.out.println("Boy is eating");
}
public static void main( String args[]) {
Boy obj = new Boy();
//This will call the child class version of eat()
obj.eat();
}
}
如果我们现在创建一个带有 Human 引用的 Boy 对象:
Human boy = new Boy();
然后打电话
boy.eat()
为什么它从 Boy 类调用 eat() 而不是从 Human 类调用 eat()。我知道当使用 Human 引用变量时,不能使用 Boy 类的方法。那么为什么 boy.eat() 不从 Human 类中调用 eat() 呢?
【问题讨论】:
-
动态绑定和多态性。
标签: java inheritance polymorphism