Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Porque construtores não são herdados?

Entendi que no polimorfismo quando estendemos uma classe apenas os métodos e atributos são estendidos, mas não os construtores, temos que criar um novo ou reutilizar um iniciando o construtor de forma similar ao da superclasse e colocar o super() dentro, mas não entendi a finalidade disso, porque decidiram que apenas os construtores não serão herdados? Que beneficio isso traz ao Java e/ou a programação orientada a objeto?

1 resposta
solução!

Para construir as classes filhas, você obrigatoriamente passa pela construção da classe pai. Só assim é possível herdar os atributos e métodos e a instanciação ocorre em cadeia, de cima para baixo na hierarquia.

Você pode fazer um teste colocando um System.out.print em cada construtor e ver a ordem em que eles são executados.

Em termos menos técnicos, pensa na situação de mãe, filha e avó. Para a filha existir, a mãe existe e a avó veio antes ainda e é impossível você herdar o parto para nascer. O parto é como se fosse o construtor.

Espero ter te ajudado :)