1

原以为下面代码的输出应该是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);
}

}

抱歉我可能犯的错误,这是我的第一个问题。

4

0 回答 0