Summary
This chapter examined how to code inheritance
in C#. You have seen that C# offers rich support for both multiple
interface and single implementation inheritance, as well as
provides a number of useful syntactical constructs designed to
assist in making code more robust, such as the override keyword, which indicates when a function
should override a base function; the new
keyword, which indicates when a function hides a base function; and
the rigid rules for constructor initializers that are designed to
ensure that constructors are designed to interoperate in a robust
manner.