Я читаю Java в NutShell и наткнулся на скрытие данных. А потом я попробовал несколько примеров и запутался в 1 примере.
Предположим, у нас есть два класса:
Class Parent{
public int a=1;
}
Class Child extends Parent {
public int a=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 и 1. Я не понимаю, почему вторая строка печатает 1. Поскольку pa является объектом Child, он должен скрывать значение родительского класса.
Кто-нибудь может объяснить, как это работает?