MEJOR SITIO PARA DESARROLLADORES WEB
Lenguaje C#. W3Schools lecciones en español

Ua En De

C# Herencia


Herencia (clase base y derivada)

En C#, es posible heredar campos y métodos de una clase a otra. Agrupamos el "concepto de herencia" en dos categorías:

  • Clase derivada (hijo) - la clase que hereda de otra clase
  • Clase base (padre): la clase que se hereda de

Para heredar de una clase, utilice el símbolo :.

En el siguiente ejemplo, la clase Coche (secundaria) hereda los campos y métodos del Vehículo clase (padre):

Ejemplo

class Vehicle  // clase base (padre)
{
  public string brand = "Ford";  // Vehicle campo
  public void honk()             // Vehicle método
  {                    
    Console.WriteLine("Tuut, tuut!");
  }
}

class Car : Vehicle  // clase derivada (niño)
{
  public string modelName = "Mustang";  // Car campo
}

class Program
{
  static void Main(string[] args)
  {
    // Crear un objeto myCar
    Car myCar = new Car();

    // Llame al método honk() (de la clase Vehícle) en el objeto myCar
    myCar.honk();

    // Muestra el valor del campo marca (de la clase Vehícle) y el valor del modelName de la clase Car
    Console.WriteLine(myCar.brand + " " + myCar.modelName);
  }
}

Ejecutar ejemplo »

¿Por qué y cuándo utilizar la "herencia"?

Es útil para la reutilización del código: reutilice campos y métodos de una clase existente cuando cree una nueva clase.

Consejo: Eche también un vistazo al siguiente capítulo, C# Polimorfismo, que utiliza métodos heredados para realizar diferentes tareas.


La palabra clave sealed

Si no desea que otras clases hereden de una clase, utilice la palabra clave sealed:

Si intenta acceder a una clase sealed, C# generará un error:

sealed class Vehicle
{
...
}

class Car : Vehicle
{
...
}

El mensaje de error será algo como esto:

'Car': cannot derive from sealed type 'Vehicle'