TypeScript · Essencial · Português · Técnico
classe abstrata
Classe marcada com abstract que não pode ser instanciada diretamente e serve de base para outras. Pode declarar membros abstratos, sem corpo, que as subclasses são obrigadas a implementar.
Onde usar
Aparece em hierarquias com comportamento comum e uma parte variável, como um processador base com o método abstrato processar. O erro 'Cannot create an instance of an abstract class' indica uso errado.
Em código
abstract class Forma {
abstract area(): number;
info() { return `área ${this.area()}`; }
}
class Quadrado extends Forma {
constructor(private l: number) { super(); }
area() { return this.l ** 2; }
}Exemplos
Essa classe abstrata define o esqueleto, e cada subclasse implementa o processar.
Não dá para dar new na classe abstrata, só nas subclasses concretas.
Cuidado
Abstract é só checagem de compilação: em runtime a classe existe e JavaScript puro consegue instanciá-la; e, ao contrário de uma interface, ela gera código.
Sinônimos
abstract class
Antônimos
classe concreta