Abstract Base Classes
An “abstract base class” is a class that is used to derive other classes, but is never instantiated itself
Abstract base classes are very useful for classes which have common properties, but the common properties alone aren’t enough to completely define the class