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.
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