Campos ocultos por herança
No seguinte exemplo de código:
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");
}
}
E a saída:
5 6
Child.aMthod 6
Child.aMthod 6
Porquep.aMethod()
não imprime 6 quando p.x imprime
Obrigad
EditaOps, um pequeno erro de digitação: a pergunta deve ser "por que o p.aMethod () não imprime 5 quando o p.x imprime 5" - Obrigado @ thinksteep