tengo algunas clases organizada como esto¿Puedo evitar que un método virtual heredado se anule en subclases?
class A
{
public virtual void Render()
{
}
}
class B : A
{
public override void Render()
{
// Prepare the object for rendering
SpecialRender();
// Do some cleanup
}
protected virtual void SpecialRender()
{
}
}
class C : B
{
protected override void SpecialRender()
{
// Do some cool stuff
}
}
¿Es posible impedir que la clase C sustituyan el método Render, sin romper el siguiente código?
A obj = new C();
obj.Render(); // calls B.Render -> c.SpecialRender
Cualquier explicación de por qué es esto mejor? Sellado tiene un significado bastante limpio. Dice "Después de pensar un poco, llegué a la conclusión de que esto nunca debería ser anulado". – Ivan