Trees versus Forests

There is another distinction we can make in the way different
languages approach the concept of inheritance.
In some languages, Java is a good example, there is one class
that is the ultimate ancestor to all other classes. Thus,
all classes can be placed into a single large inheritance
hierarchy.

Other object-oriented programming languages, C++ is a good example,
do not do this. Instead, classes in these languages are placed into
an inheritance
hierarchy if appropriate, and not otherwise. Thus, we have a
forest of many small trees, but no single large hierarchy.