Java · Essencial · Português · Técnico
classe abstrata
Classe declarada com abstract que não pode ser instanciada. Serve de base para subclasses e pode misturar métodos prontos com métodos abstratos sem corpo.
Onde usar
Aparece quando várias subclasses compartilham estado e lógica, como num template method. O erro 'is abstract; cannot be instantiated' surge ao usar new nela.
Em código
abstract class Relatorio {
abstract String corpo();
String gerar() { return "# " + corpo(); }
}
class Vendas extends Relatorio {
String corpo() { return "vendas"; }
}Exemplos
A classe abstrata guarda a lógica comum e as filhas só definem o corpo.
Não dá para fazer new numa classe abstrata.
Cuidado
Não use no lugar de interface quando só precisa de um contrato: a classe abstrata consome a única herança disponível.
Antônimos
classe concreta