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...

面试题 相关文章推荐
在Java开发中如何选择使用哪种集合类
Aug 09 面试题
程序运行正确, 但退出时却"core dump"了,怎么回事
Feb 19 面试题
求两个数的乘积和商数,该作用由宏定义来实现
Mar 13 面试题
SQL Server提供的3种恢复模型都是什么? 有什么区别?
May 13 面试题
汇智创新科技发展有限公司
Dec 06 面试题
触发器(trigger)的功能都有哪些?写出一个触发器的例子
Sep 17 面试题
什么是URL
Dec 13 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
Nov 24 面试题
Linux不知道文件后缀名怎么判断文件类型
Aug 21 面试题
腾讯公司的一个sql题
Jan 22 面试题
解释一下ruby中的特殊方法与特殊类
Feb 26 面试题
维德科技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
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
YII中assets的使用示例
2014/07/31 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
php服务器的系统详解
2019/10/12 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
vue注册组件的几种方式总结
2018/03/08 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
Python中格式化format()方法详解
2017/04/01 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
Python 中Pickle库的使用详解
2018/02/24 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
Python使用Pickle模块进行数据保存和读取的讲解
2019/04/09 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
Python3开发环境搭建详细教程
2020/06/18 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
反邪教标语
2014/06/23 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
委托公证书样本
2015/01/23 职场文书
同意离婚答辩状
2015/05/22 职场文书
导游词之襄阳古城
2019/09/27 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
详解python网络进程
2021/06/15 Python