A class is a formal category of program objects within a software system.
Instances have all the member
variables and methods of their class, including those inherited from superclasses.
Subclasses can contain member
variables and methods in addition to those inherited.
Inherited methods can be overridden with versions specific to a subclass.
Java provides mechanisms for hiding
or not hiding names across the class hierarchy.
Classes are related to types.