Olá tenho uma dúvida que contraria tudo que aprendi até agora, e ainda não encontrei referência bibliográfica pra responder.
Tenho a classe A com uma String i e método conteudo:
package teste;
public class A {
public String i = "Valor em A";
public void conteudo(){
System.out.println("Método de A");
}
}
Logo em seguida crio uma classe B, com uma String i e um método conteudo, com B extendendo a classe A:
package teste;
public class B extends A{
public String i = "Valor em B";
public void conteudo(){
System.out.println("Método de B");
}
}
Então crio um objeto de tipo A com uma estância de B, e então exibo a variavel i, e chamo o método conteudo do meu objeto:
package teste;
public class Exe {
public static void main(String[] args) {
A obj = new B();
System.out.println(obj.i);
obj.conteudo();
}
}
Resultado:
Valor em A
Método de B
Só que me retorna o valor de i declarado em A, mas o método chama o de B, quando pelo que sabia até hoje, deveria buscar tanto variável, quanto método de B. :shock:
Alguem tem um resposta do porque isso acontece??