Inheritance enables software reusability, which saves time in development and encourages the use of previously proven and debugged high-quality software. Inheritance can be accomplished from existing class libraries. The implementor of a derived class does not need access to the source code of a base class, but does need the interface to the base class and the base class object code. A base class specifies commonality.
All classes derived from a base class inherit the capabilities of that base class.
In the object-oriented design process, the designer looks for commonality and factors it out to form desirable base classes. Derived classes are then customized beyond the capabilities inherited from the base class. The programmer can designate that the new class is to inherit the data members and member functions of a previously defined base class. In this case, the new class is referred to as a derived class. With single inheritance, a class is derived from only one base class.