Скрытые поля при наследовании

В следующем примере кода:

class Parent { 
    int x =5;
    public Integer aMethod(){

        System.out.print("Parent.aMthod ");
        return x;
    }
}

class Child extends Parent {
    int x =6;
    public Integer aMethod(){
        System.out.print("Child.aMthod "); 
        return x;
    }
}


class ZiggyTest2{

    public static void main(String[] args){

        Parent p = new Child();
        Child c = new Child();

        System.out.println(p.x + " " + c.x);

        System.out.println(p.aMethod() + "  \n");
        System.out.println(c.aMethod() + "  \n");
    }   
}

И вывод:

5 6
Child.aMthod 6  

Child.aMthod 6

Почему p.aMethod () не печатает 6, когда px печатает 6?

Спасибо

Редактировать

К сожалению, небольшая опечатка: вопрос должен быть таким: «Почему p.aMethod () не печатает 5, когда px печатает 5» - Спасибо @thinksteep

10
задан ziggy 27 December 2011 в 17:24
поделиться