La herencia y el polimorfismo son conceptos fundamentales en la programación orientada a objetos (POO) que permiten la reutilización y extensión del código. A continuación, te mostraré cómo aplicar la herencia y el polimorfismo en C# para lograr una programación orientada a objetos eficaz.
Herencia
La herencia es un mecanismo que permite que una clase (llamada clase derivada o subclase) herede propiedades y métodos de otra clase (llamada clase base o superclase). La subclase puede agregar nuevas funcionalidades o modificar el comportamiento heredado.
Sintaxis de herencia en C#:
class ClaseBase
{
// Propiedades y métodos
}
class ClaseDerivada : ClaseBase
{
// Propiedades y métodos adicionales o modificados
}
Ejemplo de herencia en C#:
class Vehiculo
{
public string Marca { get; set; }
public void Arrancar()
{
Console.WriteLine("Arrancando el vehículo...");
}
}
class Coche : Vehiculo
{
public void Acelerar()
{
Console.WriteLine("Acelerando el coche...");
}
}
Polimorfismo
El polimorfismo permite que un objeto se comporte de múltiples formas. En C#, esto se logra mediante la implementación de métodos virtuales y abstractos en la clase base y su posterior modificación en las subclases.
Sintaxis de métodos virtuales y polimorfismo en C#:
class ClaseBase
{
public virtual void Metodo()
{
Console.WriteLine("Método en la clase base");
}
}
class ClaseDerivada : ClaseBase
{
public override void Metodo()
{
Console.WriteLine("Método modificado en la clase derivada");
}
}
Ejemplo de polimorfismo en C#:
ClaseBase objeto1 = new ClaseBase();
objeto1.Metodo(); // Imprime: "Método en la clase base"
ClaseBase objeto2 = new ClaseDerivada();
objeto2.Metodo(); // Imprime: "Método modificado en la clase derivada"
El polimorfismo permite tratar diferentes tipos de objetos de manera uniforme, lo que facilita la creación de código más flexible y mantenible.
La combinación de herencia y polimorfismo es esencial para una programación orientada a objetos efectiva, ya que permite reutilizar y extender el código de manera eficiente.