禁止重写派生类中的方法
本文关键字:方法 重写 派生 禁止 | 更新日期: 2023-09-27 18:19:33
这是我的类,我不希望这个方法在子类中被重写,我该如何实现这种行为?
class A
{
public virtual void demo()
{
}
}
class B : A
{
public override void demo()
{
}
}
// when Class B be inherited in C, methods can be overridden further,
// but I don't want the method to be overridden further.
class C : B
{
}
您只需要sealed
修饰符:
public sealed override void demo()
{
// Whatever implementation
}
(当然,我认为它通常是一个符合.NET约定的名称。)
如果你想在不改变行为的情况下防止方法被重写,你需要重写它,但要显式调用以前的行为:
public sealed override void demo()
{
base.demo();
}
请注意,当应用于方法(或属性)时,sealed
只能与override
一起应用。
在override void demo()
之前放入"sealed
"修饰符
class A
{
public virtual void demo()
{
}
}
class B:A
{
public sealed override void demo()
{
}
}
//B can be inherited in C but demo() method can not be overriden further
class C:B
{
}