Skip to main content

O que é uma classe abstrata?

Na programação orientada a objetos, uma classe abstrata fornece uma classe base que pode ser usada para fornecer outras classes com implementação e interface parciais. Eles são incompletos e são usados ​​em situações de herança em muitas linguagens de programação, como Java, C ++ e C #. Seu uso como uma classe base significa que eles costumam ser chamados de classe base abstrata (ABC).

Parte integrante da programação orientada a objetos, a abstração de dados remove os detalhes desnecessários de um objeto. Essencialmente, ele resume o objeto às suas principais características de identificação. Essas características básicas fornecem um modelo que pode ser usado para criar outros objetos com as mesmas propriedades, diferindo apenas nos detalhes.

Esse blueprint é definido como uma classe. As classes são usadas para encapsular o código, tornando mais fácil para o programador, porque ele pode fazer referência a rotinas comuns específicas em vez de escrever as rotinas repetidamente. Os programadores criam objetos filhos a partir de classes, e esses objetos herdam as funções e métodos dentro da classe pai.

O objetivo de uma classe abstrata é ser a estrutura sobre a qual outras classes são construídas. Os objetos não podem ser criados diretamente a partir de uma classe abstrata, apenas das subclasses pertencentes à classe abstrata. Para que um objeto seja herdado de uma classe abstrata, é necessário criar uma subclasse. Objetos de uma subclasse criada de uma classe abstrata herdam propriedades dessa classe abstrata.

Toda classe modela um conceito, e as classes abstratas tendem a modelar conceitos mais abstratos usando métodos abstratos. Métodos abstratos são sub-rotinas dentro de uma classe abstrata que não contêm implementação. Essas sub-rotinas são usadas como espaços reservados para serem substituídas por uma subclasse ou um objeto projetado com base na classe que contém o próprio método abstrato.

Existem diferentes métodos para criar uma classe abstrata. Por exemplo, em C ++, uma classe abstrata é criada desenvolvendo uma classe com pelo menos um método abstrato ou função virtual pura. Java usa uma palavra-chave "abstract" para denotar uma classe abstrata. No entanto, eles não são definidos em linguagens de programação que não suportam a idéia de herança.

Herança é o processo de criação de novos objetos a partir de classes onde os novos objetos podem usar as funções e métodos definidos em suas classes pai, sem a necessidade de reajustar o programa. É por isso que uma classe abstrata é útil. Classes filho e objetos filho dessas subclasses herdam propriedades da classe abstrata pai. As classes abstratas são consideradas superclasses e estão no topo da hierarquia da estrutura de classes; portanto, não fazem sentido em um idioma que não suporta herança.