J'ai des cours pondus comme çaPuis-je empêcher le remplacement d'une méthode virtuelle héritée dans les sous-classes?
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
}
}
Est-il possible d'empêcher la classe C de redéfinissant la méthode Render, sans casser le code suivant?
A obj = new C();
obj.Render(); // calls B.Render -> c.SpecialRender
Toute explication pourquoi est-ce mieux? Scellé a une signification plutôt propre. Il dit "Après avoir réfléchi, je suis arrivé à la conclusion que cela ne devrait jamais être annulé". – Ivan