¿Cómo evito que un método sea anulado en una clase derivada?Cómo evitar que se anule un método en C#
En Java podría hacer esto utilizando el modificador final
en el método que deseo evitar que se anule.
¿Cómo logro lo mismo en C#?
Soy consciente de usar sealed
pero aparentemente solo puedo usarlo con la palabra clave override
?
class A
{
public void methodA()
{
// Code.
}
public virtual void methodB()
{
// Code.
}
}
class B : A
{
sealed override public void methodB()
{
// Code.
}
}
Así en el ejemplo anterior que puede evitar que el methodB()
que se cambie por cualquier clases derivadas de la clase B
, pero ¿cómo puedo evitar clase B
anule la methodB()
en el primer lugar?
Actualización: Fallé la palabra clave virtual
en la declaración methodB()
en la clase A cuando publiqué esta pregunta. Corregido.
¿Es esta una nueva característica en C# 4 para sellar un método? –
Si ya no está anulando el método, simplemente no lo decore con 'virtual', entonces todo lo que venga no será considerado para el enlace de métodos en su tipo. –
Creo que sus métodos en la clase A deberían ser 'virtuales' si planea anularlos. – CAbbott