c#中sealed关键字

前几天给大家总结了virtual(虚拟的)、abstract(抽象的)、override(重写)关键字,今天就抽空把sealed(密封的)给大家总结出来,因为这四个是一连串的,所以最后才给大家总结sealed(密封),让大家久等了。来,现在就一起来瞧瞧吧!

1、先来了解一下sealed的意思


从上图可知,sealed译为密封的。故名思义,就是由它修饰的类或方法将不能被继承或重写

2、作用

​ (1)在类中使用sealed修饰符可防止其他类继承此类

​ (2)在方法声明中使用sealed修饰符可防止扩充类重写此方法

3、sealed所使用的范围

​ sealed可用于修饰类、方法、属性。

切记:不能用于修饰字段和变量

(1)密封类

​ 1、被sealed修饰的类被称为密封类,所谓密封类,就是指此类不能作为基类让其他类继承

​ 2、当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。类似于Java中final关键字。

例子:

 sealed class Animal//Animal类被sealed关键字修饰,此时说明任何类不能从Animal类继承{}class Cat:Animal//错误,被Seled修饰的类不能作为基类让其他类继承{}

(2)密封方法

​ 被sealed修饰的方法被称为密封方法,所谓密封方法,就是指此方法不能被重写

注意:

​ (1)sealed修饰方法时,不能单独使用,只有当继承基类时重写基类方法的时候使用,而且,必须与override(重写)关键字一起使用

​ (2)切记:只有在继承重写的时候才能使用sealed关键字,如果继承的基类没有你想要被重写的方法,此时使用sealed关键字修饰时错误的

​ (3)sealed必须重写方法才能使用。也就是说只有基类的方法使用了abstract(抽象的)、virtual(虚拟的)以及override(重写)关键字的时候,才能使用sealed关键字修饰方法

例1:

 //基类                 //这是正确的abstract class Animal{public abstract void Hh();//抽象方法,注意:抽象方法没有方法体}//派生类class Cat:Animal{sealed public override void Hh()//密封方法必须要有override(重写)标记{}}

例2:

  //基类class Animal{public virtual void Hh()//虚方法,注意:虚方法有方法体{ }}//派生类class Cat:Animal{sealed public override void Hh()//密封方法必须要有override(重写)标记{}}

4、注意:

​ (1)被sealed修饰的类不能使用private、protected……等修饰符,并且不能使用static以及abstract修饰符

​ (2)被sealed修饰的方法或属性证明是要重写,要与override同用,并且,要与基类的访问修饰符和方法签名一致。注意:当重写时,基类的被重写方法不能使用private、static以及abstract修饰符。

以上是我对sealed(密封)关键字的一点理解和总结,希望能够帮助到跟我一样的小白。如果本篇文章有不足之处还请各位道友能够指点迷津,在此先谢谢各位道友!

c#中sealed关键字的使用相关推荐

  1. scala中sealed关键字使用指南

    1. 防止继承滥用 ​sealed关键字可以修饰类和特质(特质).密封类提供了一种约束:不能在类定义的文件之外定义任何新的子类.然而,这样做有什么用呢? 在scala源码中List的实现用到了seal ...

  2. 快速了解sealed关键字

    sealed关键字 sealed的英文意思就是密封,禁止的意思.在c#中sealed关键字可以用来修饰类和方法.作用于类时不能和abstract对象一起使用,因为使用了sealed修饰类表示此类不能被 ...

  3. c#中的sealed关键字

    sealed关键字: 官方描述:应用于某个类时,sealed 修饰符可阻止其他类继承自该类. 还可以对替代基类中的虚方法或属性的方法或属性使用 sealed 修饰符. 这使你可以允许类派生自你的类并防 ...

  4. sealed关键字用法

    Sealed英文意思是密封的.顾名思义,该关键字修饰类时,密封类不能被继承.密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写.当应用于方法或属性时,sealed 修饰符必须始终与 ov ...

  5. Java中的关键字——final

    引言 final 关键字和 c# 中的 sealed 关键字比较像,和 static 一样,它可以用来修饰类.变量和方法:final顾名思义,最后的最终的,所以用它修饰的类.变量和方法不可以改变: 下 ...

  6. C#中sealed的用法

    1. sealed关键字     当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承.类似于Java中final关键字.     在下面的示例中,类 B 可以继承类A,但是任何类都 ...

  7. C#sealed关键字

    1.sealed 关键字修饰类 当sealed关键字修饰类的时候,此类为密封类,即不能作为其他类的父类,所以密封类中不能包含虚方法(Virtual)和抽象方法(abstract),因为没有机会实现. ...

  8. 【Java_基础】Java中Native关键字的作用

    本篇博文转载与:Java中Native关键字的作用 转载于:https://www.cnblogs.com/leiblog/p/10529056.html

  9. C/C++中extern关键字详解

    1 基本解释 :extern可以置于变量或者函数 前,以标示变量或者函数的定义在别的文件中 ,提示编译器遇到此变量和函数时在其他模块中寻找其定义 .此外extern也可用来进行链接指定. 也就是说ex ...

最新文章

  1. atom创建html文件夹,如何在Atom文本编辑器中按文件类型设置默认语法?
  2. 刚刚引来985大学建校区,这座城市再牵手世界名校办学!
  3. matlab 某些函数
  4. redis 缓存过期默认时间_过期redis时间
  5. (网址收藏)Golang模块之HTTP
  6. 安装centos 6.7
  7. C++ STL 三大组件(容器|算法|迭代器) 初步使用01
  8. 解析/etc/inittab 文件(转)
  9. filewriter判断是否关闭_IO流详解
  10. Navicat Premium之MySQL客户端的下载、安装和使用(博主推荐)
  11. http和https的区别,不懂的一起研究【转】
  12. 大学四年,工作四年,我把私藏了 8 年的网站全贡献出来了!!!
  13. 教你如何用java开发Alexa语音设备。全程详细介绍。
  14. JavaScript实现类似百度的智能搜索框
  15. 8B10B编码表,8B10B编码表格,8B10B查表内容
  16. NX/UG二次开发—其他—BlOCK UI调用NX自带功能的方法
  17. 惠普m180n故障码04_惠普m180n打印机驱动(解决m180n打印机连接问题)V1.0 免费版
  18. 【C语言学习】————操作符、关键字
  19. 正和岛青年徽商正和塾小组2021年首聚—走进掌榕
  20. 单点登录 ( 踢人模式 )

热门文章

  1. ffmpeg vsync参数分析
  2. 云计算机房之间消防通道,商场的消防通道该怎么设计才合理?
  3. 【FFmpeg】通过编解码ID(AV_CODEC_ID_*)获取编解码器AVCodec指针的过程分析
  4. 一个有意思的404页面
  5. 微信.NET:开源的ASP.NET微信公众号应用平台 .
  6. Jenkins 插件开发记录
  7. python求多叉树任意两点之间的距离
  8. android crosswalk-webview 取代 webview
  9. Excel函数大全(Excel Function List)-Part 1
  10. html5div随窗口大小,css怎么设置div随着窗口大小变换