小编Tro*_*Far的帖子

我可以阻止继承的虚方法在子类中被覆盖吗?

我有一些类似这样的课程

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
    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以阻止C类覆盖Render方法,而不会破坏以下代码?

A obj = new C();
obj.Render();       // calls B.Render -> c.SpecialRender
Run Code Online (Sandbox Code Playgroud)

c# polymorphism

15
推荐指数
1
解决办法
6712
查看次数

标签 统计

c# ×1

polymorphism ×1