Considerando o paradigma da Orientação a Objetos, assinale ...
Quando há necessidade de uma classe para implementar recursos comuns a duas ou mais classes utiliza-se:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - Classe abstrata.
Vamos explorar o conceito por trás da alternativa correta. Em Programação Orientada a Objetos (POO), uma classe abstrata é uma classe que não pode ser instanciada diretamente, isto é, você não pode criar um objeto dela. Ao invés disso, ela é projetada para ser uma base para outras classes. O propósito de uma classe abstrata é fornecer uma definição comum de uma base de classe que várias outras classes podem compartilhar.
Por exemplo, considere que temos uma classe abstrata chamada Veículo
que possui alguns métodos abstratos como ligar
e desligar
. Não faz sentido criar um objeto do tipo Veículo
porque ele é muito genérico. Ao invés disso, podemos ter classes mais específicas como Carro
e Motocicleta
que herdam de Veículo
e implementam esses métodos abstratos de formas que fazem sentido para seus contextos específicos.
Quando falamos em implementar recursos comuns a duas ou mais classes, estamos buscando uma forma de compartilhar código e comportamento de forma eficiente, evitando repetição e promovendo a reutilização de código. A classe abstrata serve exatamente para isso: definir uma estrutura que será compartilhada por outras classes.
Portanto, a alternativa correta é a D porque as classes abstratas são um mecanismo na POO que nos permite criar um tipo de "modelo" ou "esqueleto" para outras classes seguirem, implementando os métodos abstratos de acordo com suas necessidades específicas.
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
Acho que a resposta é Interface
Na verdade, uma Classe Abstrata sem qualquer implementação, tem o aspect parecido com uma Interface. Mas ambas possuem várias diferenças e similaridades entre si.
Classes Abstratas:
·As classes abstratas devem conter pelo menos um método abstrato, que não tem corpo.
·É um tipo especial de classe que não há como criar instâncias dela.
·É usada apenas para ser herdada, funciona como uma super classe.
·Uma grande vantagem é que força a hierarquia para todas as sub-classes.
·É um tipo de contrato que faz com que as sub-classes contemplem as mesmas hierarquias e/ou padrões.
Fonte:https://www.devmedia.com.br/interfaces-x-classes-abstratas/13337
Caberia classe abstrata ou classe concreta.
Interface teoricamente não tem implementação, além de não ser uma classe.
d-
Abstract classes are similar to interfaces. You cannot instantiate them, and they may contain a mix of methods declared with or without an implementation. However, with abstract classes, you can declare fields that are not static and final, and define public, protected, and private concrete methods.
Consider using abstract classes if any of these statements apply to your situation:
You want to share code among several closely related classes.
You expect that classes that extend your abstract class have many common methods or fields, or require access modifiers other than public (such as protected and private).
You want to declare non-static or non-final fields. This enables you to define methods that can access and modify the state of the object to which they belong.
https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo