【发布时间】:2017-02-25 02:29:22
【问题描述】:
class SuperClass{
public void print(){
System.out.println("I'm super class...");
}
public void someMethod(){
System.out.println("any thing");
}
}
class SubClass extends SuperClass{
@Override
public void print(){
System.out.println("I'm sub class...");
}
public static void main(String args[]){
SuperClass a=new SubClass();
a.print();
a.someMethod();
}
}
a.print() 称为动态绑定,它知道在运行时调用哪个方法并选择 SubClass 的方法,因为对象是 SubClass 是真的吗?
a.someMethod()JVM如何处理这个不在子类中的方法和子类中的对象?
【问题讨论】:
标签: java inheritance casting polymorphism dynamic-binding