public class Animal{
int n = 5;
public static void main(String[] args) {
Animal a = new Animal();
Animal ah = new Horse();
Horse h = new Horse();
System.out.println(h.n); // prints 7
System.out.println(ah.n); // prints 5
h = (Horse) ah;
System.out.println(h.n); // prints 7
}
}
class Horse extends Animal{
int n = 7;
}
私の質問:
なぜh.n
まだ7を印刷するのh = (Horse) ah
ですか?割り当て後、それはポイントするのと同じオブジェクトをah
指す必要があり、nフィールドは5を指しますか?