请注意 - 我在问为什么?如果您能给出一个更改返回类型实际上会破坏代码的示例,那将非常有用
为什么我不能更改重写方法的返回类型(协变返回类型除外)。
class Parent{
public void sayhello(){ ... };
}
class Child extends Parent{
public String sayhello() { . . .}
}
现在,如果我运行以下代码:
class test{
public static void main(String[] args){
Parent p = new Child();
p.sayHello();
}
}
凸轮某人请确认是否正在发生以下步骤:
编译器找出父对象“p”的类型。
编译器检查父类中是否存在方法“sayHello()”。
在 Runtime 期间,JVM 发现它是一个 Child 对象并调用该方法的子版本。
子方法被调用。
谢谢。
慕无忌1623718
幕布斯6054654
慕桂英4014372
相关分类