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 面试题
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
Apr 28 面试题
存储过程和函数的区别
May 28 面试题
委托与事件是什么关系?为什么要使用委托
Apr 18 面试题
什么是跨站脚本攻击
Dec 11 面试题
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
Jul 26 面试题
中间件分为哪几类
Sep 18 面试题
MIS软件工程师的面试题
Apr 22 面试题
主要的Ajax框架都有什么
Nov 14 面试题
如何用Python输出一个Fibonacci数列
Aug 28 面试题
shell变量的作用空间是什么
Aug 17 面试题
Java面试题冲刺第十七天--基础篇3
Aug 07 面试题
维德科技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字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
php在字符串中查找另一个字符串
2008/11/19 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
JavaScript replace(rgExp,fn)正则替换的用法
2010/03/04 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
js中有关IE版本检测
2012/01/04 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
Angular2库初探
2017/03/01 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
英文版餐饮业求职信
2013/10/18 职场文书
管理部部长岗位职责
2013/12/05 职场文书
十岁生日家长答谢词
2014/01/17 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
vue router 动态路由清除方式
2022/05/25 Vue.js