Conceitos de Orientação a Objetos/Classe Abstrata

Fonte: Wikiversidade

Uma classe abstrata é uma classe que serve de modelo para outras classes. Ela sempre será uma superclasse genérica, e suas subclasses serão mais específicas. Além disso, ela não pode ser instanciada e pode conter ou não métodos abstratos, podendo ser implementados nas classes descendentes. Ou seja, uma classe abstrata pode implementar ou não um método, sendo obrigatória a existência de pelo menos um método abstrato, sem corpo. O diagrama acima exemplifica esta ideia de algo geral, sendo mais especificada nas subclasses. Ao ouvirmos a palavra animal, podemos imaginar um gato, um cachorro, etc. Ou seja, uma palavra genérica pode nos levar à imaginar coisas mais específicas.