C#回顾学习笔记三十二:密封类和密封方法

本文探讨了C#中的密封类和密封方法。密封类是一种不允许被继承的类,常用于实现固定功能和提升性能,如String类。而密封方法则阻止子类重写父类中的特定方法。这种特性对于防止不必要继承和优化性能有重要作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

密封类:

密封类不允许被其他类继承。使用sealed修饰符就可以标记一个类是密封类,这样就可以防止该类被其他类继承。比如C#里系统预定好的String类就是密封类。通过“转到定义”可以发现String类被sealed修饰符标记。如图所示:



密封类的知识点:

1.被定义为sealed的类通常都是一些有着固定作用、完成某种标准功能的类。

2.有时候定义密封类是为了提高性能,由于密封类不存在被继承的问题,因而也不存在虚方法调用的问题,这样程序运行时就可以对密封类的方法调用进行优化。

3.如果视图将一个密封类作为其他类的父类,将会报错。因为密封类不能同时又是抽象类,因为抽象总是希望被继承。

==============================================

密封方法:将一个非密封类中的某个方法声明为密封方法,以防止在子类中对该方法进行重写。比如:

第1步,父类A.cs的代码:

class A
    {
        public virtual void HelloWorld()
        {

        }
    }
第2步,继承父类的B.cs代码:

class B : A
    {
        public sealed override void HelloWorld()
        {

        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值