Definição – o que significa Abstract Class?
Em linguagens de programação, uma classe abstrata é uma classe genérica (ou tipo de objeto) usada como base para a criação de objetos específicos que estão em conformidade com seu protocolo ou com o conjunto de operações que ele suporta. As classes abstratas não são instanciadas diretamente.
As classes abstratas são úteis na criação de hierarquias de classes que modelam a realidade, pois tornam possível especificar um nível invariável de funcionalidade em alguns métodos, mas deixam a implementação de outros métodos até que uma implementação específica dessa classe (uma classe derivada) seja necessária.
Definirtec explica Abstract Class
Em linguagens de programação orientada a objetos (OOP), as classes representam objetos no domínio do problema que o software pretende resolver. As classes incluem coleções de atributos (propriedades) e comportamentos (métodos), que podem ser baseados em classes previamente definidas. Os programadores usam herança para derivar a implementação específica de classes abstratas. As classes derivadas de classes abstratas são chamadas de classes derivadas. Quando esse princípio é aplicado muitas vezes em sucessão, resulta em uma hierarquia de classes. Nesse contexto, as classes abstratas estão na raiz dessa hierarquia e são usadas para impor métodos que precisam ser substituídos nas classes derivadas, evitando assim possíveis erros de tempo de execução.
Uma classe abstrata possui pelo menos um método abstrato. Um método abstrato não terá nenhum código na classe base; o código será adicionado em suas classes derivadas. O método abstrato na classe derivada deve ser implementado com o mesmo modificador de acesso, número e tipo de argumento, e com o mesmo tipo de retorno da classe base. Objetos do tipo de classe abstrata não podem ser criados, porque o código para instanciar um objeto do tipo de classe abstrata resultará em um erro de compilação.