nBecause derived classes inherit the members of the base classes, one class' design can be based on existing members from another class.
nThink of this as using
building blocks.
nInstead of starting from
scratch with each class that we design,
we can extend one class from another, reusing an existing class and reducing the need to reinvent.
nNew member functions can
be added without modifying
the base class itself. And, a derived
class can change the inherited
base class client interface by specifying
data members and member functions of the same name, hiding those inherited from the direct or indirect base classes.