だから、私はこれを持っています:
public class A {
public int a = 0;
public void m(){
System.out.println("A"+a);
}
}
この:
public class B extends A {
public int a = 5 ;
public void m (){
System.out.println("B"+a);
}
public static void main(String[] args) {
A oa = new A();
B ob = new B();
A oab = ob;
oa.m();
ob.m();
oab.m();
System.out.println("AA"+oa.a);
System.out.println("BB"+ob.a);
System.out.println("AB"+oab.a);
}
}
出力:
A0
B5
B5
AA0
BB5
AB0
理由がわかりませんoab.m(); 出力はA0ではなくB5です。誰かが私にこれを説明できますか?