Uma classe abstrata não pode ser diretamente instanciada. So...

Próximas questões
Com base no mesmo assunto
Q91120 Engenharia de Software
Com relação às técnicas de programação orientada a objetos, julgue
os itens a seguir.

Uma classe abstrata não pode ser diretamente instanciada. Somente as subclasses derivadas por herança múltipla de classes abstratas, chamadas de classes concretas, podem ser instanciadas.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - Errado

Vamos desmembrar o enunciado para entender melhor o conceito abordado. Primeiramente, a afirmação "Uma classe abstrata não pode ser diretamente instanciada." está correta. Na programação orientada a objetos, uma classe abstrata é um tipo de classe que não pode ser instanciada, ou seja, você não pode criar um objeto dessa classe diretamente. Ela é projetada para ser uma classe base, que define métodos abstratos os quais devem ser implementados pelas subclasses.

Entretanto, a segunda parte do enunciado diz que "Somente as subclasses derivadas por herança múltipla de classes abstratas, chamadas de classes concretas, podem ser instanciadas." e aqui está o equívoco. A herança múltipla é uma característica em que uma classe pode herdar comportamentos e atributos de mais de uma classe base, e não é uma condição necessária para que uma classe possa ser instanciada. Uma classe concreta pode ser o resultado da derivação de uma única classe abstrata e não precisa necessariamente vir de uma herança múltipla de classes abstratas. Assim que uma classe concreta implementa todos os métodos abstratos herdados da classe abstrata, ela pode ser instanciada, independentemente de ser o resultado de herança múltipla ou simples.

Portanto, a afirmação como um todo está errada, porque a instanciabilidade de uma classe concreta não está atrelada exclusivamente à herança múltipla. Qualquer classe que não seja abstrata e tenha seus métodos abstratos (se herdados de uma classe abstrata) implementados, é considerada concreta e pode ser instanciada.

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

Uma classe abstrata não pode ser diretamente instanciada. Somente as subclasses derivadas por herança múltipla de classes abstratas, chamadas de classes concretas, podem ser instanciadas.
Não entendi porque a questão está errada visto que o conceito de herança múltipla está certo. A questão não está relacionada com Java mas sim com o conceito de orientação a objeto.
Não é somente herança multipla. Qualquer classe que herda (simples ou multipla) de classe abstrata pode ser instanciada.
Independente de a herança ser múltipla ou simples, a classe concreta, derivada de classe abstrata, só pode ser instanciada se TODOS os seus métodos ABSTRATOS forem implementados.

o correto seria: "somente as subclasses de classes abstratas, chamadas de classes concretas, que implementam todos os métodos abstratos da classe herdada, podem ser instanciados."

Precisa implementar todos, caso contrário, a subclasse será outra classe abstrata e também não poderá ser instanciada.

A parte da herança múltipla está apenas para confundir, não é uma regra.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo