The choices between inheritance and overriding, subclass and subtypes,
mean that inheritance can be used in a variety of different ways
and for different purposes. Many of these types of inheritance
are given their own special names. We will describe some of these
specialized forms of inheritance.