Chapter 4. Inheritance


  • Types of inheritance

  • Implementing inheritance

  • Access modifiers

  • Interfaces

Chapter 3, "Objects and Types," examined how to use individual classes in C#. The focus in that chapter was how to define methods, properties, constructors, and other members of a single class (or a single struct). Although you learned that all classes are ultimately derived from the class System.Object, you did not learn how to create a hierarchy of inherited classes. Inheritance is the subject of this chapter. In this chapter, you see how C# and the .NET Framework handle inheritance.


Let's start by reviewing exactly what C# does and does not support as far as inheritance is concerned.

Implementation Versus Interface Inheritance

In object-oriented programming, there are two distinct types of inheritance — implementation inheritance and interface inheritance:

  • Implementation inheritance means that a type derives from a base type, taking all the base type's member fields and functions. With implementation inheritance, a derived type adopts the base type's implementation of each function, unless it is indicated in the definition of the derived type that a function implementation is to be overridden. This type of inheritance is most useful when you need to add functionality to an existing type, or when a number of related types share a significant amount of common functionality.

  • Interface inheritance means that a type inherits only the signatures of the ...

Get Professional C# 4 and .NET 4 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.