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开发的一般流程
Aug 13 面试题
Tomcat中怎么使用log4j输出所有的log
Jul 07 面试题
私有程序集与共享程序集有什么区别
Apr 05 面试题
什么是ARP(Address Resolution Protocol)地址解析协议
Oct 31 面试题
在C#中如何实现多态
Jul 02 面试题
什么是Linux虚拟文件系统VFS
Aug 25 面试题
介绍一下Make? 为什么使用make
Jul 31 面试题
飞利信loadrunner和软件测试笔试题
Sep 22 面试题
什么是测试驱动开发(TDD)
Feb 15 面试题
EJB3推出JPA的原因
Oct 16 面试题
Java面试笔试题大全
Nov 23 面试题
介绍一下你对SOA的认识
Apr 24 面试题
维德科技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
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
2020/09/09 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
对Python中range()函数和list的比较
2018/04/19 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
函授自我鉴定
2013/11/06 职场文书
车贷收入证明范本
2014/01/09 职场文书
冬季安全检查方案
2014/05/23 职场文书
会计试用期自我评价
2014/09/19 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
2014年化验员工作总结
2014/11/18 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
初中思品教学反思
2016/02/20 职场文书
公司晚会主持词
2019/04/17 职场文书