O estabelecimento de relações de herança na programação orie...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: Letra E - um método de uma superclasse pode ser sobrescrito em suas subclasses.
Vamos explorar o conceito de herança na programação orientada a objetos, especialmente em Java, que é o contexto da questão. A herança é um pilar fundamental da OOP (Programação Orientada a Objetos), permitindo que uma classe (subclasse ou classe derivada) herde estados (atributos) e comportamentos (métodos) de outra classe (superclasse ou classe base). Isso facilita o reúso de código e a criação de abstrações mais genéricas.
A alternativa correta, letra E, afirma que um método de uma superclasse pode ser sobrescrito em suas subclasses. Isso é verdade e é conhecido como sobrescrita de método (method overriding em inglês). A sobrescrita é um conceito chave na herança, pois permite que uma subclasse forneça uma implementação específica para um método que já é fornecido pela sua superclasse. Isso é utilizado para ajustar ou melhorar o comportamento de um método em contextos específicos da subclasse.
Outras alternativas são incorretas e vamos entender o porquê:
- A - Sobrecarga de métodos (method overloading) é perfeitamente possível em subclasses e é uma técnica onde métodos com o mesmo nome têm parâmetros diferentes.
- B - Java não suporta herança múltipla de classes, ou seja, uma classe não pode ter mais de uma superclasse direta.
- C - Herança cíclica é um erro conceitual e não é permitida em Java; uma classe não pode herdar de si mesma.
- D - Uma subclasse em Java herda tanto os atributos quanto os métodos de sua superclasse, exceto aqueles que são privados ou de acesso restrito.
Portanto, entender os conceitos de herança, sobrecarga e sobrescrita de métodos é essencial para resolver questões como essa e para programar eficientemente em linguagens orientadas a objetos como Java.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
a) em uma relação de herança, não pode haver sobrecarga de métodos nas subclasses.
b) para uma classe X herdar de uma classe Y e de uma classe Z, deve-se utilizar na declaração da classe X, a instrução extends Y, Z.
Nesse caso, será necessário uma herança transitiva. X herda de Y (X extends Y) e Y herda de Z (Y extends Z).
c) para que uma classe X herde ciclicamente dela mesma, basta na declaração da classe X colocar a instrução extends X.
Uma classe não pode herdar ciclicamente dela mesma.
d) em uma relação de herança, uma classe herda os atributos de outra, mas não seus métodos.
Herda tudo!
e) um método de uma superclasse pode ser sobrescrito em suas subclasses.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo