是的,这是
Runtime polymorphism在Java中
在中
static polymorphism,编译器本身确定应调用的方法。
Method overloading是静态多态性的一个例子。
在中
runtime polymorphism,编译器无法在编译时确定方法。
Method overriding(如您的示例)是的示例
runtimepolymorphism。因为在
Runtime polymorphism(如您的示例中),
methodA()类
X(baseclass)和中的签名相似
Y(childclass)。因此,编译器无法在编译时确定应执行的方法。仅在对象创建(这是一个运行时过程)之后,运行时环境才能了解要调用的确切方法。
这是因为,在这种情况下,
obj1.methodA()呼叫
methodA()在
Class X因为
obj1为创建的对象的参考变量
classX
AND
obj2.methodA()调用
methodA(),
Class Y因为它
obj2是为以下对象创建的对象的参考变量
class Y



