Inheritance is a relation between classes that enables the reuse of code and the definition of a generalized interface to one or more subclasses. Inheritance implies an "is a" hierarchy among classes; a subclass typically specializes its superclasses by augmenting or redefining existing structure and behavior.