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

面试题 相关文章推荐
List、Map、Set三个接口,存取元素时,各有什么特点?
Sep 27 面试题
介绍一下Java中的Class类
Apr 10 面试题
广州御银科技股份有限公司试卷(C++)
Nov 04 面试题
武汉英思工程科技有限公司–ORACLE面试测试题目
Apr 30 面试题
.net工程师笔试题
Jun 09 面试题
STP的判定过程
Oct 01 面试题
什么是索引指示器
Aug 20 面试题
为什么需要版本控制
Oct 28 面试题
软件设计的目标是什么
Dec 04 面试题
构造方法和其他方法的区别
Apr 26 面试题
MVC的各个部分都有那些技术来实现?如何实现?
Apr 21 面试题
Tomcat的缺省是多少,怎么修改
Apr 09 面试题
维德科技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异常处理技术,顶级异常处理器
2012/06/13 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
详解redux异步操作实践
2018/08/15 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
python 实现简单的FTP程序
2019/12/27 Python
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
StubHub德国:购买和出售门票
2017/09/06 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
学校消防安全制度
2014/01/30 职场文书
演讲稿的写法
2014/05/19 职场文书
端午节演讲稿
2014/05/23 职场文书
平面设计师岗位职责
2014/09/18 职场文书
党支部培养考察意见
2015/06/02 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
导游词之青城山景区
2019/09/27 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android