We have several times noted that object have a public and private face -
inheritance introduces a third alternative, the subclass face.
-
Public features are those aspects that users of the software component must
have access to.
-
Private features are those aspects that the implementor of the software
component must have access to.
-
Protected features are those aspects that implementors of child classes
can have access to.
There are two types of clients for the class developer.
These are user clients (those who use an instance of the class),
and subclass clients (those who will subclass from the class).