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

面试题 相关文章推荐
我的applet原先好好的, 一放到web server就会有问题,为什么?
May 10 面试题
创建索引时需要注意的事项
May 13 面试题
数据库什么时候应该被重组
Nov 02 面试题
介绍一下.NET构架下remoting和webservice
May 08 面试题
PPP协议组成及简述协议协商的基本过程
May 28 面试题
网络体系结构及协议的定义
Mar 13 面试题
如何手工释放资源
Dec 15 面试题
abstract是什么意思
Feb 12 面试题
软件测试常见笔试题
Feb 04 面试题
客服端调用EJB对象的几个基本步骤
Jan 15 面试题
如何写出好的Java代码
Apr 25 面试题
Delphi笔试题
Nov 14 面试题
维德科技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
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
destoon复制新模块的方法
2014/06/21 PHP
Yii框架form表单用法实例
2014/12/04 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
SVG描边动画
2017/02/23 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
python scatter函数用法实例详解
2020/02/11 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
中学生爱国演讲稿
2013/12/31 职场文书
集体婚礼证婚词
2014/01/13 职场文书
全国道德模范事迹
2014/02/01 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
黄河绝恋观后感
2015/06/08 职场文书
《小小的船》教学反思
2016/02/18 职场文书
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python