Skip to main content

O que é um método abstrato?

Na programação orientada a objetos, sub-rotinas chamadas "métodos" são usadas para executar funções em um programa. Esses métodos consistem em instruções de programação que executam uma ação, configuram parâmetros de entrada para personalizar ações e podem retornar ou gerar um valor de algum tipo de objeto ou classe. Métodos são as ações executadas em um programa de uma determinada classe ou dentro de um objeto e são usadas para acessar e manipular dados armazenados em um objeto. Existem muitos métodos diferentes e cada um tem um uso específico. Um tipo específico que é executado a partir de uma superclasse abstrata e herdado por subclasses é conhecido como método abstrato.

Geralmente, o método abstrato executa pouca ou nenhuma implementação dentro de sua superclasse abstrata. Os códigos contidos nesse tipo de método são considerados códigos fictícios e não são implementados por si mesmos. Isso não significa que o método abstrato específico em uma determinada classe abstrata não seja usado. Em vez disso, o método abstrato atua como modelo ou espaço reservado para subclasses para concluir a implementação do método.

As superclasses podem conter várias subclasses e todas as subclasses de uma superclasse possuem determinados estados e comportamentos semelhantes. Classes abstratas, portanto, são um tipo de classe virtual que exibe herança virtual. Isso significa que qualquer subclasse derivada de uma superclasse herda as restrições da superclasse da qual é derivada. Portanto, os métodos nas subclasses são derivados de métodos abstratos de superclasses. Ao programar e usar métodos abstratos, o programador deve declarar a classe abstrata em vez de virtual.

Por exemplo, uma superclasse de "Objetos gráficos" contém as subclasses "Círculo", "Quadrado" etc. etc. Assim, todos os círculos e quadrados têm os mesmos estados - orientação, posição, cor de preenchimento, cor da linha e comportamentos - moveTo , redimensione, gire, desenhe - como "Objetos gráficos". Todas as subclasses dessa superclasse têm as mesmas qualidades, mas são implementadas de maneiras diferentes. O método abstrato da superclasse fornece as bases sem implementação, e as subclasses realizam a implementação real usando os mesmos métodos. Embora cada subclasse use o mesmo método da classe abstrata, elas definem exclusivamente a maneira pela qual o método será executado.

O uso de um método abstrato permite generalização no nível superior ou superclasse e especificação nos níveis mais baixos ou subclasses. Essa hierarquia minimiza a quantidade de programação de métodos para cada subclasse específica. O uso desses métodos também permite a idempotência das subclasses, o que significa que, se um método for implementado repetidamente, o resultado será o mesmo sempre.