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

面试题 相关文章推荐
PHP如何对用户密码进行加密
Jul 31 面试题
Ibatis中如何提高SQL Map的性能
May 11 面试题
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
Mar 25 面试题
编写用C语言实现的求n阶阶乘问题的递归算法
Oct 21 面试题
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
Feb 10 面试题
几个数据库方面的面试题
Jul 01 面试题
阿里巴巴Oracle DBA笔试题答案-备份恢复类
Nov 20 面试题
北京某科技有限公司C# .net笔试题
Sep 27 面试题
linux面试题参考答案(7)
Oct 29 面试题
Linux Interview Questions For software testers
May 17 面试题
EJB3.1都有哪些改进
Nov 17 面试题
启动一个线程是用run()还是start()
Dec 25 面试题
维德科技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实现 上一篇、下一篇的代码
2012/09/29 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
Bootstrap Table使用整理(二)
2017/06/09 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
js实现select下拉框选择
2020/01/11 Javascript
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
python logging模块的使用详解
2020/10/23 Python
迟到检讨书800字
2014/01/13 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
职称评定自我鉴定
2014/03/18 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
新教师培训方案
2014/06/08 职场文书
导游词400字
2015/02/13 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
银行资信证明
2015/06/17 职场文书
MySQL系列之十二 备份与恢复
2021/07/02 MySQL
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
关于JavaScript轮播图的实现
2021/11/20 Javascript