In This Chapter
Inheriting a base class
Constructing the base class
Exploring meaningful relationships: The IS_A versus the HAS_A relationship
This chapter discusses inheritance, the ability of one class to inherit capabilities or properties from another class.
Inheritance is a common concept. I am a human (except when I first wake up in the morning). I inherit certain properties from the class
Human, such as my ability to converse (more or less) intelligently and my dependence on air, water, and carbohydrate-based nourishment (a little too dependent on the latter, I'm afraid). These properties are not unique to humans. The class
Human inherits the dependencies on air, water, and nourishment from the class
Mammal, which inherited it from the class
The capability of passing down properties is a powerful one. It enables you to describe things in an economical way. For example, if my son asks, 'What's a duck?' I can say, 'It's a bird that goes quack.' Despite what you may think, that answer conveys a considerable amount of information. He knows what a bird is, and now he knows all those same things about a duck plus the duck's additional property of 'quackness.' (Refer to Chapter 11 for a further discussion of this and other profound observations.)
Object-oriented (OO) languages express this inheritance relationship by allowing one class to inherit from another. Thus, OO languages can generate a model that's closer to the real world ...