次のクラスがあるとします
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);
最初のメソッド呼び出しは 2 を出力し、2 番目のメソッド呼び出しは 1 を出力します。なぜ両方のメソッド呼び出しが 1 を出力しないのでしょうか?