我想知道为什么这一点 Java 产生 2 而不是 3 :
public class Test {
private static class A {
int f(A a) {
return 1;
}
}
private static class B extends A {
int f(A a) {
return 2;
}
int f(B b) {
return 3;
}
}
public static void main(String[] astrArgs) {
A ab = new B();
B b = new B();
System.out.println( ab.f(b) );
}
}
我在一个测试问题中遇到了这个问题,但无法理解其背后的逻辑。