¿Qué pasa si intentas Shape() cuando Shape es una clase base abstracta con un @abstractmethod area()?
Opciones
- Funciona, y el método
area()simplemente devuelve None - TypeError: no es posible instanciar una clase abstracta (Opción correcta)
- Crea automáticamente un objeto Circle por defecto
- SyntaxError, que se lanza al cargar el archivo
Respuesta
TypeError: no se puede instanciar una clase abstracta
Por qué
Una clase abstracta es una plantilla que no está pensada para usarse directamente. Declara métodos que cada subclase DEBE implementar.
Python se niega a crear un objeto a partir de ella. Una subclase como Circle que implementa area() se puede crear con normalidad.
Esto garantiza que toda figura tiene de verdad un método area().
Recuerda
Las clases abstractas definen el contrato; solo se crean las subclases completas.