class A{
void m1(A a) {System.out.print("A");}
}
class B extends A{
void m1(B b) {System.out.print("B");}
}
class C extends B{
void m1(C c) {System.out.print("C");}
}
public class d {
public static void main(String[] args) {
A c1 = new C(); C c2 = new C();c1.m1(c2);
}}
このコードの出力はです'A'
。
しかし、クラスAを次のように変更すると、次のようになります。
class A{
void m1(C a) {System.out.print("A");}
}
その場合、出力は'C'
です。誰かがこのコードがどのように機能しているか説明してもらえますか?