[Dúvida] Uso do Super em classes pais

Gostaria de saber se o “super()” pode chamar construtores das classes herdadas pelo Pai?

Ex:
Aparelho -> TV -> LG

LG herda de TV que herda de Aparelho, na classe LG tem como eu chamar o construtor de Aparelho usando um Super()? Ou se há alguma forma de chamar um construtor de Aparelho através da classe LG.
Vlw.

Bom dia!

Claro que sim. Veja a documentação oficial:
https://docs.oracle.com/javase/tutorial/java/IandI/super.html

Quando você estende uma classe, a primeira instrução executada pelo construtor da subclasse é uma chamada ao construtor da superclasse.

Então se você fizer LG objeto = new LG(); vai acontece o seguinte:

  • O construtor de LG vai invocar o construtor de TV;
  • O construtor de TV vai invocar o construtor de Aparelho;
  • O construtor de Aparelho vai invocar o construtor de Object.
2 curtidas

Então no caso LG utilizando o super só pode chamar o construtor de TV correto?

Não é que só pode, ele vai chamar.
Faz parte da etapa de instanciação, a primeira instrução é chamar o construtor da superclasse e isso ocorre em cascata até chegar na classe Object.
Se você não chamar explicitamente o “superconstrutor”, o compilador põe essa chamada no bytecode pra você, exceto para construtores parametrizados.

1 curtida