运行时多态性或动态方法分派是在运行时而不是在编译时解决对覆盖方法的调用的过程。在这个过程中,通过超类的引用变量调用被覆盖的方法。 要调用的方法的确定是基于引用变量所引用的对象。
示例:
class Bike {
void run() {
System.out.println("running");
}
}
class Splendor extends Bike {
void run() {
System.out.println("running safely with 60km");
}
public static void main(String args[]) {
Bike b = new Splendor();//upcasting
b.run();
}
}
运行结果:
running safely with 60km.
在这个过程中,通过超类的引用变量调用被覆盖的方法。 要调用的方法的确定是基于引用变量所引用的对象。