看书时发现sealed可以阻止类被继承,但是sealed能否作用于方法或者属性呢?
答案是肯定的!
当sealed用来修饰方法时,只能对派生类使用,这个方法将重写基类的方法,但是该类的派生类将无法再次重写这个方法。
如果对基类使用,编译器将会报错
错误 1 因为“ConsoleApplication1.A.T()”不是重写,所以无法将其密封 ConsoleApplication1\ConsoleApplication1\Program.cs 12 27 ConsoleApplication1
而如下代码则是正确的
class A
{
public virtual void T()
{
Console.WriteLine("A");
}
}
class Program: A
{
sealed public override void T()
{
Console.WriteLine("PPP");
base.T();
}
}
参考文献:sealed