Herencia

La herencia es una forma de reutilización del software, en la cual se crean clases nuevas a partir de clases ya existentes, mediante la absorción de sus atributos y métodos, embelleciendo éstos con las capacidades que las clases nuevas requieren. La reutilización del software ahorra tiempo en el desarrollo de programas, fomenta la reutilización de software de alta calidad, probado y depurado, y reduce problemas en un sistema después de convertirlo en funcional.

Al crear una clase nueva, en vez de escribir datos miembro y funciones miembro nuevas, el programador puede determinar que la clase nueva debe heredar los datos y funciones miembro provenientes de una clase base definida, la clase nueva se conoce como clase derivada.

A menudo una clase derivada añade datos y funciones miembro propias, por lo que en general una clase derivada es más grande que su clase base.

Una clase derivada no puede tener acceso a los datos y funciones miembro privados de su clase base, a diferencia si puede tener acceso a los datos y funciones miembro públicos y protegidos de la clase base.

La sintaxis para declarar que una clase hereda de otra clase es como sigue:
Class ClaseDerivada : ClaseBase
{
 //definición de la clase derivada
}

Llamadas a constructores de la clase base

Un constructor de una clase derivada debe llamar al constructor de su clase base. Se debe usar la palabra clave base para llamar al constructor de la clase base. Ejemplo:

Class identificadora : token
{
 public identificadora(string name)
        : base (nombre del constructor)
}

Si no se llama explícitamente al constructor de una clase base en un constructor de una clase derivada, el compilador intentará insertar, una llamada al constructor predeterminado de la clase base.