原以为下面代码的输出应该是ABB,原来是AAB,为什么java在这里做静态绑定呢?
public class A {}
public class B extends A {}
public class C {
void f(A x) {
System.out.println("A");
}
void f(B x) {
System.out.println("B");
}
public static void main(String[] args) {
C c = new C();
A a1 = new A();
A a2 = new B();
B a3 = new B();
c.f(a1);
c.f(a2);
c.f(a3);
}
}
抱歉我可能犯的错误,这是我的第一个问题。