您的示例是 动态绑定 ,因为在运行时确定类型
a是什么,并调用适当的方法。
现在假设您也具有以下两种方法:
public static void callEat(Animal animal) { System.out.println("Animal is eating");}public static void callEat(Dog dog) { System.out.println("Dog is eating");}
即使您更改
main为
public static void main(String args[]){ Animal a = new Dog(); callEat(a);}
这将打印出来
Animal is eating,因为对的调用
callEat使用 静态绑定 ,并且编译器仅知道其
a类型
Animal。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)