Angenommen, ich habe die folgenden Klassen
class A{
public method(A a) {
System.out.println(3);
}
}
class B extends A{
public void method (A a) {
System.out.println(2);
}
public void method (B b) {
System.out.println(1);
}
}
A obj = new B();
obj.method( (B) obj);
((B) obj).method( (B) obj);
Der erste Methodenaufruf gibt 2 aus, während der zweite Methodenaufruf 1 ausgibt. Warum geben beide Methodenaufrufe nicht 1 aus?