Clases Abstractas

Definiendo moldes incompletos.

El módulo ABC

En Python, usamos el módulo abc para definir Clases Abstractas. Una clase abstracta no puede ser instanciada y obliga a sus subclases a implementar ciertos métodos.

from abc import ABC, abstractmethod

class Empleado(ABC):
    @abstractmethod
    def calcular_salario(self):
        pass

class Programador(Empleado):
    def calcular_salario(self):
        return 5000

¿Cuándo usarlas?

Cuando quieres definir un "contrato" o estructura común para un grupo de clases, pero no tiene sentido crear un objeto de la clase base por sí misma.