from abc import ABC, abstractmethod class Shape(ABC): # Shape is an abstract base class @abstractmethod def area(self): pass class Circle(Shape): # Circle is a class that inherits from the abstract Shape class def __init__(self, radius): self.radius = radius def area(self): # As a child of an Abstract class, this child class MUST define # it's own implementation of this abstractmethod return 3.14 * self.radius ** 2 class Square(Shape): # Square is a class that inherits from the abstract Shape class def __init__(self, side): self.side = side def area(self): # As a child of an Abstract class, this child class MUST define # it's own implementation of this abstractmethod return self.side ** 2