Questão de Programação Orientada a Objetos

Leia o trecho a seguir: "Cada construtor de subclasse deve, implícita ou explicitamente, chamar um dos construtores da superclasse para inicializar as variáveis de instância herdadas da superclasse (...) Fazemos isso usando a sintaxe de chamada de construtor de superclasse — a palavra-chave super é seguida por um conjunto de parênteses que contém os argumentos do construtor da superclasse, que são usados para inicializar as variáveis de instância da superclasse. Se o construtor (...) não invocou o construtor da superclasse de maneira explícita, o compilador tentará inserir uma chamada para o construtor sem argumentos ou padrão da superclasse." Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São Paulo: Pearson Education do Brasil, 2017. p. 297. Adaptado.
Considerando as informações apresentadas, assinale a opção correta:

A
O construtor super() elimina a necessidade de copiar código do construtor da classe base dentro do construtor da classe herdeira, evitando repetição de código e melhorando a manutenção do código.
B
O construtor super() representa uma chamada direta para o método construtor da classe base. Portanto, ele nos ajuda a economizar código: ao invés de copiar e colar suas funcionalidades, podemos realizar ações específicas no construtor da classe herdeira e chamar o construtor da classe base para realizar as ações genéricas comuns a todas as classes da “família.”
C
Construtores não possuem modificadores de acesso e não podem ser privados, portanto sempre são acessíveis.
D
Cada classe possui os seus próprios construtores, não existindo “sobreposição” por parte de uma classe herdeira. Os construtores da classe herdeira sempre irão utilizar também o construtor da classe base. Caso não haja uma chamada explícita, o compilador irá acrescentar essa chamada automaticamente – neste caso, ele utilizará o construtor padrão, que normalmente é o construtor sem parâmetros.
E
O construtor super() é uma sobreposição do construtor da classe base realizado na classe herdeira, ou seja, o construtor é reescrito para se adequar à realidade da classe herdeira. O construtor super() pode ser utilizado quando os atributos da classe base são públicos ou protegidos. Caso eles sejam privados, o construtor não terá acesso a eles, e por isso a chamada a super() provocará erros.

Comentários

U

Ainda não há comentários para esta questão.

Seja o primeiro a comentar!