密封类 通过在类定义前面放置关键字 sealed,可以将类声明为密封类。例如: public sealed class D { // Class members here. } 密封类不能用作基类。因此,它也不能是抽象类。密封类禁止派生。 由于密封类从不用作基类,所以有些运行时优化可以使对密封类成员的调用略快。 重写基类虚成员的派生类成员,如方法、字段、属性或事件,可被声明为密封成员。 在后续的派生类中,这将取消该成员的虚效果。方法是在类成员声明中将 sealed 关键字置于 override 关键字的前面。例如: public class D : C { public sealed override void DoWork() { } } 特点:(1) 使用sealed关键字来定义密封类。 (2) 密封类不能被继承。 (3) 在密封类不能定义虚函数,不能定义抽象函数。 (4) 可以使用sealed关键字来密封方法,但是只有在覆盖基类的方法时才能使用sealed关键字。 (5) 使用sealed关键字密封的方法不能被覆盖,防止派生类进一步重写该方法,但能被重载,能被隐藏。 (6) 注意:在使用sealed关键字时,不能同时使用abstract或virtual关键字。 使用密封类注意一下几点: 1、密封类不能作为基类被继承,但它可以继承别的类或接口。 2、在密封类中不能声明受保护成员或虚方法,因为受保护成员和只能从派生类进行访问,而虚成员只能在派生类中重写。 3、由于密封类的不可继承性,因此密封类不能声明抽象的。 示例: using System; using System.Collections.Generic; using System.Text; namespace TestSealedClass_01 { // 密封类 不能被继承 sealed class A { public void Method1() {} //错误,在密封类中不能定义虚函数 //public virtual void Method2() //{} //错误,在密封类中不能定义抽象函数 //public abstract void Method3(); } //class B : A //错误,密封类A不能被继承 //{} class AutoMobile { public virtual void Display() { Console.WriteLine(“这是基类 AutoMobile”); } //Display()方法不是重写,所以不能使用sealed关键字 //public sealed void Display() //{ // Console.WriteLine(“这是基类 AutoMobile”); //} } class Car : AutoMobile { //使用sealed关键字来密封方法 public sealed override void Display() { Console.WriteLine(“这是派生类 Car”); } public void Display(string mark) //使用sealed关键字密封的方法,能被重载 { Console.WriteLine(“这是派生类 Car:{0}”, mark); } } class SmallCar : Car { //使用sealde关键字密封的方法,不能被覆盖 //public override void Display() //{} //使用sealde关键字密封的方法,能被隐藏 public new void Display() { Console.WriteLine(“这是派生类 Car”); } } class Program { static void Main(string[] args) { Car car = new Car(); car.Display(); } } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算