Classes abstratas em Java
Gabarito: letra E. Uma classe abstrata em Java não pode ser instanciada diretamente; seu propósito é servir como base para subclasses. Essa é a característica fundamental que define a alternativa correta.
Vamos analisar cada alternativa:
Alternativa A — ❌ Incorreta
Afirma que classe abstrata não possui atributos. É falso: uma classe abstrata pode (e frequentemente tem) atributos, sejam eles privados, protegidos ou públicos. A abstração não impede a declaração de campos.
Alternativa B — ❌ Incorreta
Afirma que classe abstrata não possui métodos. Também falso: ela pode ter métodos concretos (com implementação) e métodos abstratos (sem corpo). A presença de pelo menos um método abstrato é o que a torna abstrata, mas não é obrigatório que todos os métodos sejam abstratos.
Alternativa C — ❌ Incorreta
Diz que o código de uma classe abstrata deve ser escrito dentro de uma função main(). Não há qualquer relação: a classe abstrata é definida em seu próprio arquivo, e o método main() é o ponto de entrada da aplicação, que pode estar em outra classe.
Alternativa D — ❌ Incorreta
Afirma que outro nome para classe abstrata é enum. enum é um tipo de dado que define um conjunto fixo de constantes, conceito totalmente diferente de classe abstrata.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa está correta: não é possível criar um objeto (instanciar) diretamente de uma classe abstrata. A instanciação só é permitida por meio de subclasses concretas que estendem a classe abstrata e implementam todos os seus métodos abstratos.
Gabarito: letra E