gpt4 book ai didi

c# - 我可以防止继承的虚方法在子类中被覆盖吗?

转载 作者:可可西里 更新时间:2023-11-01 07:50:37 26 4
gpt4 key购买 nike

我有一些类是这样布局的

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
}

关于c# - 我可以防止继承的虚方法在子类中被覆盖吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com