Type Hierarchy

Classes allow us to define our data types. Indeed, Student and GradStudent are data types. More specifically, GradStudent is a subtype of Student. And by the same token, Student is the base type of GradStudent.

Since inheritance is transitive, it allows us to create a hierarchy of types. This makes object-oriented programming an instrumental paradigm for real-world modeling because the entities in real-world problems often naturally exhibit such a hierarchy.

Example: Fruits
Example: Animals

Exercise We are building a software solution for a banking system. We have the following classes so far: Account, Checking, Saving, Debit, Credit. Arrange these classes into the following type hierarchy.

Solution