C# 增加的sealed(密封的)关键字,用于修饰方法和类,表示继承来的虚方法不能被其派生类再重写和类不能被继承。分别被称为密封方法和密封类,其中密封方法必须同override一起使用。例如:
using System;
class A {
public virtual void F() {
Console.WriteLine("A.F");
}
public virtual void G() {
Console.WriteLine("A.G");
}
}
class B: A {
public sealed override void F() {
Console.WriteLine("B.F");
}
public override void G() {
Console.WriteLine("B.G");
}
}
class C: B {
public override void F() { // 错误,不能覆盖密封方法
Console.WriteLine("C.F");
}
public override void G() {
Console.WriteLine("C.G");
}
}
又例如:
sealed class A {}
class B: A {} // 错误,不能从密封类派生
新闻热点
疑难解答