Abstract Base Class (ABC): An abstract base class is a class that cannot be instantiated and is used as a blueprint for creating other classes. It defines a common interface for its subclasses, which must implement the abstract methods defined in the base class.
Inheritance: Inheritance is a fundamental concept in object-oriented programming where a new class is created based on an existing class. The new class inherits the properties and methods of the existing class, allowing for code reuse and the creation of specialized versions of the original class.
Polymorphism: Polymorphism is the ability of objects of different classes to be treated as objects of a common superclass. This allows the same method to be used on objects of different classes, with each class providing its own implementation of the method.