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

面试题 相关文章推荐
写一个用矩形法求定积分的通用函数
Nov 08 面试题
怎样在程序里获得一个空指针
Jan 24 面试题
试述DBMS的主要功能
Nov 13 面试题
使用索引(Index)有哪些需要考虑的因素
Oct 19 面试题
RIP版本1跟版本2的区别
Dec 30 面试题
接口的多继承会带来哪些问题
Aug 17 面试题
linux面试题参考答案(6)
Jun 23 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jul 11 面试题
UML设计模式笔试题
Jun 07 面试题
EJB的几种类型
Aug 15 面试题
Prototype如何更新局部页面
Mar 03 面试题
解释下列WebService名词:WSDL、SOAP、UDDI
Jun 22 面试题
维德科技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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
用PHP连接MySQL代码的参数说明
2008/06/07 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
Django中处理出错页面的方法
2015/07/15 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
python中正则表达式的使用方法
2018/02/25 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
Python中作用域的深入讲解
2018/12/10 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
python小项目之五子棋游戏
2019/12/26 Python
详解Python IO口多路复用
2020/06/17 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
计算机专业个人求职自荐信
2013/09/21 职场文书
应用化学专业本科生求职信
2013/09/29 职场文书
房地产开发项目建议书
2014/05/16 职场文书
拔河比赛口号
2014/06/10 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
丽江古城导游词
2015/02/03 职场文书
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫