This chapter completed the basic concepts of object-oriented programming that were started in the previous chapter by defining inheritance and polymorphism. Inheritance enables you to create new specialized versions of classes based on existing classes. The design process enables you to create an inheritance hierarchy based on common functionality and object specialization. Polymorphism enables you to leverage that inheritance hierarchy to write methods that operate on super classes in the hierarchy and pass subclasses to those methods.
The next chapter looks at a Java-specific mechanism used to enhance polymorphism and facilitate some rather interesting new functionality called interfaces.