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