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);
}
}
¿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'