In the following illustration, all arrows represent subclasssuperclass relations:
*--------* | Object | <-- Root *--------* ^ ^ *--------* *---------* | Abstract classes | | | tend to be in *---* *-----* | the upper layers | | | | | *---* *-----* | ^^^ ^ ^ | *--------*|*--------* | *------* | | | | | | | *---* *---* *---* *-----* *-----* | | | | | | | | | | | . *---* *---* *---* *-----* *-----* . ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ *-* *-* *-* *-* *-* *-* *--* | *--* | | | | | | | | | | | Final classes *--* *--* *--* *--* *--* *--* *--* *--* *--* *-- must appear only | | | | | | | | | | | | | | | | | | <--- as leaves *--* *--* *--* *--* *--* *--* *--* *--* *--*