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如何自定义函数
Sep 16 面试题
你常见到的runtime exception
Sep 05 面试题
到底Java是如何传递参数的?是by value或by reference?
Jul 13 面试题
什么是数据抽象
Nov 26 面试题
广州品高软件.net笔面试题目
Apr 18 面试题
请解释virtual关键字的含义
Jun 17 面试题
P/Invoke是什么
Jul 31 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
Feb 10 面试题
linux面试题参考答案(7)
Oct 29 面试题
一些Unix笔试题和面试题
Jan 22 面试题
几个常见的消息中间件(MOM)
Jan 08 面试题
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
Oct 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
php程序之die调试法 快速解决错误
2009/09/17 PHP
基于PHP静态类的原罪详解
2013/05/06 PHP
php截取中文字符串函数实例
2015/02/23 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
jquery中this的使用说明
2010/09/06 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
Python 元组(Tuple)操作详解
2014/03/11 Python
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
Python制作简单的网页爬虫
2015/11/22 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
应届行政管理专业个人自我评价
2013/12/28 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
保密承诺书
2014/03/27 职场文书
我的求职择业计划书
2014/04/04 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书