Types of Derivation
There are two other forms of derivation that are possible:
protected derivation and private derivation.
If we are interested in extending the client interface for
one of the direct base classes, then it should be derived as
public.
If we are interested in replacing the client interface but
allowing future derivation, then it should be derived as
protected.
If we want no future derivation, then it should be derived
as private.