Implementation inheritance is a mechanism by which classes share implementation. Interface inheritance is a classification of objects based on common external interface. A class may inherit properties and operations from an ancestor class and may have its operations inherited by other classes. Inheritance from a single direct ancestor is called single inheritance. Inheritance from multiple direct ancestors is called multiple inheritance.
Class inheritance is essentially a static form of inheritance.
New classes inherit properties when they are defined rather than at run time. Once a class has been defined, the properties of its instances, that is the instance variables and methods are determined for all time. Dynamic inheritance is the mechanism that allows objects to alter their behaviour in the course of normal interaction with other objects. Part inheritance occurs when an object changes its behaviour by accepting new parts from other objects. Part inheritance is nothing more than an exchange of values between objects.