Static binding in Java

62 Views Asked by At

I thought that the output of the following code would have been ABB, instead it is AAB, why does java do static binding here?

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);
}

}

Sorry for the mistakes I might have done, it's my first question.

0

There are 0 best solutions below