Welcome

首页 / 软件开发 / C# / 密封方法

密封方法2007-11-10 本站 我们已经知道,使用密封方法可以防止对类的继承。还提出了密封方法(sealed method)的概念,以防止在方法所在类的派生类中对该方法的重载。

对方法可以使用sealed修饰符,这时我们称该方法是一个密封方法。

不是类的每个成员都可以作为密封方法,密封方法必须对基类的虚方法进行重载,提供具体的实现方法。所以,在方法的声明中,sealed修饰符总是和override修饰符同时使用。请看例子代码:

程序清单14-7:

using System;class A{ public virtual void F(){Console.WriteLine("A.F"); } public virtual void G(){Console.WriteLine("A.G"); }}class B:A{ sealed override public void F(){Console.WriteLine("B.F"); } override public void G(){Console.WriteLine("B.G"); }}class C:B{override public void G(){Console.WriteLine("C.G");}}
类B对基类A中的两个虚方法均进行了重载,其中F方法使用了sealed修饰符,成为一个密封方法。G方法不是密封方法,所以在B的派生类C中,可以重载方法G,但不能重载方法F。