1
resposta

Definição de Métodos Abstratos em Python

Geralmente os métodos abstratos não tem implementação, possuem somente assinatura. Em python os métodos abstratos podem ter implementação? o que vai caracterizar ele como abstrato? O decorator @abstractmethod somente?

1 resposta

Olá Isabela, tudo bem com você?

Um método abstrato será definido pelo decorator @abstractmethod, quando uma classe possui um ou mais métodos abstratos suas classes filhas deverão possuir os mesmos métodos declarados.

Caso seja necessário podemos implementar o método abstrato na classe mãe, essa implementação ficará disponível para invocação nas classes filhas, devemos invocar o método da classe mãe com o uso do super() dentro do método da classe filha. Abaixo um exemplo com a implementação de um método abstrato da classe abstrata.

from abc import ABCMeta, abstractmethod


class ClasseAbstrataExemplo(metaclass=ABCMeta):

    @abstractmethod
    def imprima(self):
        print("Implementação do método abstrato na classe abstrata.")


class ClasseFilha(ClasseAbstrataExemplo):

    def imprima(self):
        super().imprima()
        print("Método implementado na classe filha, sem uso da implementação da classe mãe.")


obj_um = ClasseFilha()
obj_um.imprima()

Resultado

Implementação do método abstrato na classe abstrata.
Método implementado na classe filha, sem uso da implementação da classe mãe.

Acima é apresentado a chamada de um método abstrato implementado em um método da classe filha, o código implementado na classe mãe será executado e logo após é dado a continuidade na execução do código implementado na classe filha.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!