ExpertiDict

Java · Essencial · Português · Técnico

classe abstrata

/ˈklasi abisˈtɾatɐ/substantivo

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

Veja também

Todos os termos de Java