私は NutShell で Java を読んでいて、Data Hiding に出会いました。そして、いくつかの例を試して、例の1つで混乱しました。
次の 2 つのクラスがあるとします。
Class Parent{
public int a=1;
}
Class Child extends Parent {
public int a=2;
}
そして、主な機能でこの2つのクラスのオブジェクトを作成します:
public static void main (String args[])
{
Child ch= new Child();
Parent pa=new Child();
System.out.println(ch.a);
System.out.println(pa.a);
}
出力は次のとおりです。 2 and 1 なぜ 2 行目が 1 を出力しているのかわかりません。pa は Child のオブジェクトであるため、親クラスの値を隠しているはずです。
誰でもこれがどのように機能するか説明できますか?