使子类无法重写方法实现
本文关键字:方法 实现 重写 子类 | 更新日期: 2024-10-31 02:37:43
假设我有一个名为Animal
的基本抽象类,它有一个名为Move
的虚拟方法。
我创建了一个名为 Mammal
的子类,它继承自 Animal 并定义 Move
方法。
然后,我创建了一个名为 Rabbit
的子类Mammal
。
事情是这样的:
我不希望Rabbit
能够覆盖Mammal
已经定义的Move
的实现(Mammal
的子类不得更改Mammal
定义的 Move 的定义)。
由于Rabbit
继承自Mammal
,是否可以在Mammal
类中"取消虚拟化"Move
方法,以防止继承类覆盖Mammal
中的方法定义?
sealed
当应用于类时,密封修饰符会阻止其他类从该类继承。在下面的示例中,类 B 继承自类 A,但任何类都不能从类 B 继承。
还可以对重写基类中的虚拟方法或属性的方法或属性使用密封修饰符。这使您能够允许类从您的类派生,并防止它们重写特定的虚拟方法或属性。
class Animal
{
public virtual void Move() { }
}
class Mammal : Animal
{
public sealed override void Move() { }
}
class Rabbit : Mammal
{
public override void Move() { } // error
}