C# 中的 sealed 关键字

在C#中,sealed关键字用于阻止一个类被继承,或者阻止一个成员(如方法、属性、索引器或事件)被重写。当一个类被声明为sealed时,它不能有子类,也就是说,不能有其他类从它继承。

当一个成员(如方法、属性、索引器或事件)被声明为sealed时,它不能在派生类中被重写。这对于阻止派生类修改特定成员的行为非常有用。

使用sealed关键字的基本语法如下:

csharp 复制代码
sealed class MyClass
{
    // ...
}

sealed override void MyMethod()
{
    // ...
}

需要注意的是,sealed关键字只能与class一起使用,不能与interfaceabstract类一起使用。同时,sealed关键字只能与override关键字一起使用,不能单独用于方法、属性、索引器或事件。

例如,下面的代码定义了一个sealed类和一个sealed方法:

csharp 复制代码
public class MyBaseClass
{
    public virtual void MyMethod()
    {
        Console.WriteLine("Base class method.");
    }
}

public sealed class MySealedClass : MyBaseClass
{
    public sealed override void MyMethod()
    {
        Console.WriteLine("Sealed class method.");
    }
}

在这个例子中,MySealedClass不能被继承,而MyMethod不能在任何派生类中被重写。

相关推荐
csbysj20201 分钟前
C# 命名空间(Namespace)
开发语言
永远睡不够的入4 分钟前
C++11新特性(3):lambda不是玄学:从编译器生成的仿函数类彻底搞懂 C++ 匿名函数
开发语言·c++
SilentSamsara4 分钟前
综合实战:用 Python 做一个待办事项管理器(CLI 版)
开发语言·python·青少年编程·pycharm
HAPPY酷6 分钟前
UE5 C++ 避坑指南:暴力移除 Electronic Nodes 插件,回归纯净开发
开发语言·c++·ue5
huipeng9267 分钟前
分布式服务部署详解
java·开发语言·spring cloud·微服务
eqwaak07 分钟前
4 月技术快讯|Rust 1.90 正式发布,系统级开发再进化
开发语言·后端·rust
小此方8 分钟前
Re:思考·重建·记录 现代C++ C++11篇 (四)C++ Lambda 全解析:编译器是如何为你生成仿函数的?
开发语言·c++·c++11·现代c++
Brilliantwxx10 分钟前
【C++】初认识模版
开发语言·c++
唐青枫11 分钟前
C#.NET MediatR 深入解析:进程内消息分发、CQRS、通知事件与管道行为实战
c#·.net