sealed修饰符是干什么的


Posted in 面试题 onOctober 23, 2012
sealed 修饰符表示密封
用于类时,表示该类不能再被继承,不能和 abstract 同时使用,因为这两个修饰符在含义上互相排斥
用于方法和属性时,表示该方法或属性不能再被继承,必须和 override 关键字一起使用,因为使用 sealed 修饰符的方法或属性肯定是基类中相应的虚成员
通常用于实现第三方类库时不想被客户端继承,或用于没有必要再继承的类以防止滥用继承造成层次结构体系混乱
恰当的利用 sealed 修饰符也可以提高一定的运行效率,因为不用考虑继承类会重写该成员
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example06
{
class Program
{
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 G()
{
Console.WriteLine(“C.G”);
}
}
static void Main(string[] args)
{
new A().F();
new A().G();
new B().F();
new B().G();
new C().F();
new C().G();
Console.ReadLine();
}
}
}

结果:
类 B 在继承类 A 时可以重写两个虚函数
由于类 B 中对 F 方法进行了密封, 类 C 在继承类 B 时只能重写一个函数
控制台输出结果,类 C 的方法 F 只能是输出 类B 中对该方法的实现:
A.F
A.G
B.F
B.G
B.F
C.G

Tags in this post...

面试题 相关文章推荐
写出一个方法实现冒泡排序
Jul 08 面试题
SQL Server面试题
Oct 17 面试题
ORACLE十问
Apr 20 面试题
三维科技面试题
Jul 27 面试题
一套C#面试题
Oct 09 面试题
介绍一下linux的文件系统
Mar 20 面试题
linux下进程间通信的方式
Jan 23 面试题
Ajax的优点和缺点
Nov 21 面试题
AJAX应用和传统Web应用有什么不同
Aug 24 面试题
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
May 29 面试题
请说出这段代码执行后a和b的值分别是多少
Mar 28 面试题
Java面试题:为什么要用Java
May 11 面试题
维德科技C#面试题笔试题
Dec 09 #面试题
C#实现启动一个进程
Oct 01 #面试题
C#笔试题
Jul 14 #面试题
C#和SQL Server的面试题
Aug 12 #面试题
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
Jul 23 #面试题
成都思必达公司C#程序员招聘面试题
Jun 26 #面试题
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
Oct 15 #面试题
You might like
全国FM电台频率大全 - 31 新疆维吾尔族自治区
2020/03/11 无线电
apache mysql php 源码编译使用方法
2012/05/03 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
PHP常用技巧汇总
2016/03/04 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
2018/05/14 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
python+pyqt实现右下角弹出框
2017/10/26 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
django云端留言板实例详解
2019/07/22 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
介绍一下linux的文件权限
2012/02/15 面试题
远程教育心得体会
2014/01/03 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
人大代表选举标语
2014/10/07 职场文书
2014年业务工作总结
2014/11/17 职场文书
绵山导游词
2015/02/05 职场文书
开业庆典致辞
2015/08/01 职场文书
干部外出学习心得体会
2016/01/18 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
python实现层次聚类的方法
2021/11/01 Python
JS函数式编程实现XDM一
2022/06/16 Javascript