Chapter 6. Inheritance: Is That All I Get?

In This Chapter

  • Defining one class in terms of another, more fundamental class

  • Differentiating between is a and has a

  • Substituting one class object for another

  • Constructing static or instance members

  • Including constructors in an inheritance hierarchy

  • Invoking the base class constructor specifically

Object-oriented programming is based on four principles: the ability to control access (encapsulation), inherit from other classes, respond appropriately (polymorphism), and refer from one object to another indirectly (interfaces).

Inheritance is a common concept. I am a human, except when I first wake up. I inherit certain properties from the class Human, such as my ability to converse, more or less, and my dependence on air, food, and carbohydrate-based beverages with lots of caffeine. The class Human inherits its dependencies on air, water, and nourishment from the class Mammal, which inherits from the class Animal.

The ability to pass down properties is a powerful one. You can use it to describe items in an economical way. For example, if my son asks, "What's a duck?" I can say, "It's a bird that quacks." Despite what you may think, that answer conveys a considerable amount of information. My son knows what a bird is, and now he knows all those same characteristics about a duck plus the duck's additional property of "quackness."

Object-oriented languages express this inheritance relationship by allowing one class to inherit properties from another. ...

Get C# 2010 All-in-One For Dummies® now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.