La palabra clave virtual en C# se utiliza para indicar que un método o propiedad puede ser sobrescrito en una clase derivada. Esto permite la implementación de polimorfismo en la programación orientada a objetos, facilitando la personalización del comportamiento de los métodos en clases heredadas.
Cuando un método o propiedad se declara con virtual, significa que puede ser modificado en cualquier clase que lo herede mediante la palabra clave override. Si una clase derivada no sobrescribe el método, se ejecutará la implementación de la clase base.
public class ClaseBase
{
public virtual void MostrarMensaje()
{
Console.WriteLine("Mensaje desde la clase base");
}
}
public class ClaseDerivada : ClaseBase
{
public override void MostrarMensaje()
{
Console.WriteLine("Mensaje desde la clase derivada");
}
}
En este ejemplo, el método MostrarMensaje es declarado como virtual en la ClaseBase, permitiendo que la ClaseDerivada lo sobrescriba usando override.
| Modificador | Descripción |
|---|---|
virtual
|
Permite que un método o propiedad sea sobrescrito en una clase derivada. |
override
|
Se usa en la clase derivada para modificar un método virtual de la clase base. |
sealed
|
Evita que un método sobrescrito vuelva a ser modificado en otras clases derivadas. |
ClaseBase objeto = new ClaseDerivada();
objeto.MostrarMensaje();
// Salida: "Mensaje desde la clase derivada"
sealed para evitar más sobrescrituras
public class ClaseFinal : ClaseDerivada
{
public sealed override void MostrarMensaje()
{
Console.WriteLine("Mensaje final sin posibilidad de sobrescritura");
}
}
Aquí, sealed evita que cualquier otra clase herede y sobrescriba MostrarMensaje.
Jorge García
Fullstack developer