Fala Galera! Eu estou estudando java e estou com uma dúvida nas seguintes classes:
public class A{
public int x=10;
}
public class B extends A{
public int x;
}
public class Teste{
public void main (String [] args){
B b=new B();
A a=b;
a.x=4;
System.out.println(a.getClass() ); // Class B ???
System.out.println(a.x); //4
}
}
Minha pergunta é porque eu consigo alterar o valor de x da classe A se o objeto (a) tem o endereço do objeto (b) e quando faço a.getClass(); ele me retorna Class B
ou seja o objeto (a) pertence agora a classe B.Como isso é possível ??? A referencia a superclasse fica guardada em algum lugar?? Mesmo sabendo que B extends
A e possui x de A.