What is ABC (Abstract Base Class)?
A class that defines a common interface for subclasses by declaring abstract methods that must be implemented.
ABCs enforce contracts — subclasses must implement all abstract methods or they cannot be instantiated. Create ABCs using the abc module: class Shape(ABC): @abstractmethod def area(self): pass. Any subclass must define area().
ABCs are useful for plugin systems, framework extensions, and defining clear interfaces. Built-in ABCs include collections.abc (Iterable, Sequence, Mapping) which define what operations a collection supports.