c#中sealed关键字的使用
c#中sealed关键字前几天给大家总结了virtual(虚拟的)、abstract(抽象的)、override(重写)关键字,今天就抽空把sealed(密封的)给大家总结出来,因为这四个是一连串的,所以最后才给大家总结sealed(密封),让大家久等了。来,现在就一起来瞧瞧吧!1、先来了解一下sealed的意思从上图可知,sealed译为密封的。故名思义,就是由它修饰的类或方法将不能被继承或重写
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(密封)关键字的一点理解和总结,希望能够帮助到跟我一样的小白。如果本篇文章有不足之处还请各位道友能够指点迷津,在此先谢谢各位道友!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)