When a class is derived based on another existing class, the existing methods and properties are referenced for reuse with the new class. A subclass uses all of the methods and properties defined in the superclasses above it within the class hierarchy. Inheritance can be broken for individual methods and properties when creating a subclass. This is known as specialization.
Generally the term "inheritance" implies single inheritance. In some languages such as Microsoft C++, multiple inheritance is supported. In multiple inheritance, a single subclass can be derived from more than one superclass. Along with the problems of naming conflicts within the union of methods and properties of the superclasses, multiple inheritances is usually considered an improper class hierarchy design solution. The combination of composite objects and delegation is superior to multiple inheritance.