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

面试题 相关文章推荐
xml有哪些解析技术?区别是什么
Apr 26 面试题
2019年Java面试必问之经典试题
Sep 12 面试题
北承题目(C++)
May 16 面试题
编写strcpy函数
Jun 24 面试题
Android面试题及答案
Sep 04 面试题
武汉东之林科技有限公司机试
Sep 17 面试题
ASP.NET中的身份验证有那些
Jul 13 面试题
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
Oct 15 面试题
一套C#面试题
Oct 09 面试题
广州喜创信息技术有限公司JAVA软件工程师笔试题
Oct 17 面试题
分别介绍一下Session Bean和Entity Bean
Mar 13 面试题
什么是servlet链?
Jul 13 面试题
维德科技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 取得瑞年与平年的天数的代码
2009/08/10 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
fgetcvs在linux的问题
2012/01/15 PHP
深入php list()函数的详解
2013/06/05 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
利用Psyco提升Python运行速度
2014/12/24 Python
Python将xml和xsl转换为html的方法
2015/03/10 Python
Python中int()函数的用法浅析
2017/10/17 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
python -v 报错问题的解决方法
2020/09/15 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
在家更换处方镜片:Lensabl
2019/05/01 全球购物
社区工作者演讲稿
2014/05/23 职场文书
业务员岗位职责
2015/02/03 职场文书
迎新年主持词
2015/07/06 职场文书