Ed
ano passado
Vamos analisar as alternativas uma a uma para identificar a correta: 1. 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. - Essa afirmação é verdadeira, mas não é a mais completa em relação ao que o construtor super() faz. 2. 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”. - Essa afirmação é correta e explica bem a função do construtor super(). 3. Construtores não possuem modificadores de acesso e não podem ser privados, portanto sempre são acessíveis. - Essa afirmação é falsa. Construtores podem sim ser privados. 4. 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. - Essa afirmação é verdadeira, mas a parte sobre "não existindo sobreposição" pode ser confusa, pois os construtores são específicos para cada classe. 5. 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. - Essa afirmação é confusa e incorreta, pois o construtor super() não é uma sobreposição, mas sim uma chamada ao construtor da superclasse. 6. Para que o super() possa ser utilizado, é necessário que a classe base torne o seu construtor público ou protegido, caso contrário ele não será acessível dentro da classe herdeira. - Essa afirmação é verdadeira. 7. Caso o construtor da classe base possua parâmetros, nós podemos chamar o construtor super() explicitamente. Caso contrário, sua chamada deverá ser feita implicitamente pelo compilador sem parâmetros. - Essa afirmação é verdadeira. Após analisar todas as opções, a mais completa e correta é a 2: "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”."
Cadastre-se ou realize login
Mais perguntas desse material