Considerando os conceitos de Programação Orientada a Objetos...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A
Tema central da questão: O foco está nos princípios de Programação Orientada a Objetos (POO) em Java, especialmente diferenciações entre classes concretas, abstratas, métodos concretos e abstratos, além de conceitos de herança.
Resumo teórico:
Na linguagem Java, classe concreta é aquela que pode ser instanciada e deve fornecer implementações completas para todos os seus métodos. Classe abstrata é aquela que pode conter métodos abstratos (sem implementação) e não pode ser instanciada. Já método abstrato é declarado sem corpo (apenas assinatura), devendo ser implementado por uma subclasse concreta. Java não permite herança múltipla de classes, mas permite que uma classe implemente várias interfaces, que são um tipo especial de contrato de métodos.
Justificativa da alternativa A (correta):
Uma classe concreta deve ter apenas métodos concretos (com implementação). Se ela tiver qualquer método abstrato, deve ser declarada como abstrata, e não pode ser instanciada. Isso está de acordo com a documentação oficial da Oracle (Abstract Methods and Classes).
Análise das alternativas incorretas:
B) Incorreta. Java permite herdar múltiplas interfaces, mas não há restrição quanto a estarem em diferentes pacotes. O local do pacote não interfere na herança de interfaces.
C) Incorreta. Java não suporta herança múltipla de classes. Uma classe pode estender apenas uma outra classe, mas pode implementar várias interfaces.
D) Incorreta. Métodos abstratos não podem estar em classes concretas. Só podem ser declarados em classes abstratas.
Dicas de interpretação:
Fique atento a termos como “deve”, “apenas” e “pode”, pois indicam restrições importantes. Palavras relacionadas à herança múltipla quase sempre apontam para interfaces em Java, não para classes.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
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 - Correto: Uma classe concreta não pode conter métodos abstratos. Se o fizer, ela mesma se torna uma classe abstrata.
B - A primeira parte está correta, mas a segunda não: não é necessário que estejam em pacotes diferentes.
C - Java não permite herança múltipla. Uma alternativa para isso é uma classe implementar diversas interfaces.
D - Errado: Uma classe concreta não pode ter um método abstrato. Caso herde um método abstrato, ela é obrigada a implementá-lo, não podendo ter apenas a assinatura.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo