我有一些这样的类(class)
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
}
}
是否可以在不破坏以下代码的情况下防止C类覆盖Render方法?
A obj = new C();
obj.Render(); // calls B.Render -> c.SpecialRender
最佳答案
您可以密封单个方法以防止它们被覆盖:
public sealed override void Render()
{
// Prepare the object for rendering
SpecialRender();
// Do some cleanup
}