Herencia y Polimorfismo en C#

La herencia y el polimorfismo son conceptos fundamentales de la programación orientada a objetos en C#. La herencia permite crear nuevas clases basadas en otras existentes, reutilizando y extendiendo su funcionalidad. El polimorfismo, por su parte, habilita usar una misma interfaz o método con diferentes implementaciones, haciendo tu código más flexible y extensible.

Definir una clase base

Una clase base contiene propiedades y métodos comunes que otras clases pueden heredar.

public class Animal {
    public string Nombre { get; set; }

    public virtual void HacerSonido() {
        Console.WriteLine("El animal hace un sonido.");
    }
}
    

Aquí la clase Animal define un método virtual que puede ser sobrescrito por clases derivadas.

Crear clases derivadas

Las clases derivadas heredan de la clase base y pueden sobrescribir su comportamiento.

public class Perro : Animal {
    public override void HacerSonido() {
        Console.WriteLine("El perro ladra.");
    }
}
    

La palabra clave override indica que el método reemplaza la implementación de la clase base.

Uso del polimorfismo

Puedes trabajar con referencias de la clase base que apuntan a objetos de clases derivadas.

Animal miAnimal = new Perro();
miAnimal.HacerSonido();
// Salida: El perro ladra.
    

Esto permite escribir código más flexible y desacoplado, ideal para colecciones de tipos base que contengan objetos heterogéneos.

Buenas Prácticas

Diseña jerarquías de herencia claras y coherentes. Usa la herencia solo cuando tenga sentido semántico. Prefiere la composición sobre la herencia excesiva para mantener el código flexible y mantenible. Documenta las clases y sus métodos sobrescritos para facilitar su comprensión.

Ver también

Documentación oficial de Microsoft

Ver más en Microsoft Docs