Inheritance is based on a hierarchy of classes, which is implied by defining a class as a specialization or, using a different term, by an IsA relationship, of one or several other classes.
The subordinate classes are called subclasses and the superordinate classes are referred to as superclasses.
Subclasses inherit the structure and behavior of their superclasses.
The same attribute or method, but with a different type, respectively implementation, may be defined for different classes, names may thus be overloaded.
If a subclass provides specific structure and behavior, this will override inheritance.
Inheritance conflicts may arise if multiple inheritance takes place.