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

面试题 相关文章推荐
会话Bean的种类
Nov 07 面试题
Java中实现多态的机制
Aug 09 面试题
简单介绍Object类的功能、常用方法
Oct 02 面试题
公司JAVA开发面试题
Apr 02 面试题
C++如何引用一个已经定义过的全局变量
Aug 25 面试题
统计每一学生的平均成绩
Jun 06 面试题
盛大二次面试题
Nov 18 面试题
酷瑞网络科技面试题
Mar 30 面试题
C#中类(class)与结构(struct)的异同
Nov 03 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
May 24 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Jan 27 面试题
如何写一个自定义标签
Dec 28 面试题
维德科技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学习笔记之数组篇
2011/06/28 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
JS 时间显示效果代码
2009/08/23 Javascript
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
js 删除数组的几种方法小结
2014/02/21 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
JS抛物线动画实例制作
2018/02/24 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
Python找出微信上删除你好友的人脚本写法
2018/11/01 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
《猫》教学反思
2014/02/26 职场文书
2016十一国庆节感言
2015/12/09 职场文书
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL