
Alguém poderia me dizer porque o resultado é 1 2 1 e não 1 2 2...
Já que p3 é um B ...
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Alguém poderia me dizer porque o resultado é 1 2 1 e não 1 2 2...
Já que p3 é um B ...
Boa tarde Rafael,
Dê uma olhada na definição abaixo:
A p3 = new B();
A é o tipo da variável p1, e essa variável recebeu um objeto do tipo B, isso é possível devido a B herdar de A. Portanto todo B é um A.
Como p3 é do tipo A ele vai usar todos os métodos de A , menos os que forem rescritos em B .
E pelo exercício parece que o getValor foi rescrito em B, mas na verdade ele não foi, pois é um método estático (static). Métodos estáticos não podem ser rescritos(eles pertencem somente a classe), portanto p3 continuará usando o getValor da classe A.
Muito confuso não? Recomendo dar uma olhada no curso de Java 3 onde se explica melhor o polimorfismo.
Abraços
Certo, Vinícius. Obrigado pela ajuda. Deu pra entender sim.
Mas de qq forma vou me matricular no curso pra aprender mais as nuâncias rs