这是我的课,我不希望在子类中重写此方法,我该如何实现这种行为?
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
{
}
答案 0 :(得分:11)
您只需要sealed
修饰符:
public sealed override void demo()
{
// Whatever implementation
}
(我认为它通常是符合.NET惯例的名称。)
如果要在不自行更改行为的情况下阻止覆盖该方法,则需要覆盖它,但显式调用以前的行为:
public sealed override void demo()
{
base.demo();
}
请注意,应用于方法(或属性)时,sealed
只能 与override
一起使用。
答案 1 :(得分:9)
在sealed
override void demo()
”修饰符
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
{
}