1.sealed 修饰符用来干什么的呢?
a.修饰类时,表示被修饰的类不能再继承。不可以和abstract一起用,因为意义相反。
b.修饰方法或者属性,表示被修饰方法或者属性不可以被重写。必须和 override 关键字一起使用。
因为使用 sealed 修饰符的方法或属性肯定是基类中相应的虚成员。
通常用于实现第三方类库时不想被客户端继承,或用于没有必要再继承的类以防止滥用继承造成层次结构体系混乱,恰当的利用sealed修饰符也可以提高一定的运行效率,因为不用考虑继承类会重写该成员。
案例:
代码如下
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { public enum timeofday { Morning=0, Afternoon =1, Evening=2 } static void Main(string[] args) { Customer c = new Customer(); c.show(3); } class A { public virtual void F() { Console.WriteLine("A.F"); } public virtual void G() { Console.WriteLine("A.G"); } } class B : A { /// <summary> /// 密封一个方法 /// </summary> public sealed override void F() { Console.WriteLine("B.F"); } public override void G() { Console.WriteLine("B.G"); } } class C : B { public override void G() { Console.WriteLine("C.G"); } } } }