Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Java herança

Alguém poderia me dizer porque o resultado é 1 2 1 e não 1 2 2...

Já que p3 é um B ...

2 respostas
solução!

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