1
resposta

Reaproveitamento de construtor

Não entendi muito bem o reaproveitamento de construtores, pois precisa obrigatoriamente passar uma informação completa de parâmetros do construtor pai? Portanto, no "this" terá informação do ano do carro. Isso quer dizer, se eu fazer um getAno para o novo construtor eu vou receber "2017"?

1 resposta

Na verdade o reaproveitamento do construtor é na mesma classe. A ideia é, se estamos duplicando código no construtor(que é o caso das validações) possamos reaproveitar usando o this(), se fosse chamar o contrutor da classe pai seria super().

Ou seja, temos 2 construtores, um com 3 parâmetro, que tem todas validações e outro com 2 parâmetros que internamente chama o construtor com 3 parâmetro e com o atributo ano fixo com o valor 2017.

Dessa forma podemos criar o objeto Carro chamando o construtor com 3 parâmetros:

Carro carro = new Carro(2013, "Gol", 35000.0);

Isso vai criar: "Carro [ano=2013, modelo=Gol, preco=35000.0]"

Ou criar o objeto Carro chamando o construtor com 2 parâmetros:

Carro outroCarro = new Carro("Civic", 95000.0);

Isso vai criar: "Carro [ano=2017, modelo=Civic, preco=95000.0]"