我在处理 Java 类继承时遇到了一个问题,其中子类 C 有一个像其父类 A 一样的方法 fun() ,但签名不同。但是我不明白为什么在对象 x 上调用 fun() 时会调用父类的方法。我确实明白,因为签名不同,这并不完全是方法重写,但我仍然不明白为什么在这里调用 A 的 fun() 方法。
A级
class A{
public void fun(double d){
System.out.println("A");
}
}
Run Code Online (Sandbox Code Playgroud)
C级
public class C extends A{
public static void main(String[] args){
A x = new C();
x.fun(6); //prints "A"
}
public void fun(int i){
System.out.println("C");
}
}
Run Code Online (Sandbox Code Playgroud)