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不能在任何派生类中被重写。

相关推荐
DogDaoDao3 分钟前
【第 05 篇】Python的字典与集合
开发语言·python·集合·字典
兰令水17 分钟前
leecodecode【单调栈】【2026.6.12打卡-java版本】
java·开发语言·算法
leagsoft_100319 分钟前
零信任选型五刀法——零信任怎么选?五个问题,五条红线
开发语言·php
AI人工智能+电脑小能手30 分钟前
【大白话说Java面试题 第112题】【并发篇】第12题:AQS 中节点的入队时机有哪些?
java·开发语言·面试
影寂ldy31 分钟前
C# 泛型委托
java·算法·c#
IT WorryFree32 分钟前
Zabbix 7.4 API 可同步全量参数清单(同步第三方系统专用)
java·开发语言·zabbix
码云骑士43 分钟前
06-Python装饰器从入门到源码(上)-闭包与自由变量
开发语言·python
码云骑士1 小时前
10-Python运行时内存模型-栈帧-堆-引用计数-GC分代回收的全景图
开发语言·python
智码看视界1 小时前
老梁聊全栈系列 JavaScript语言本质:从原型链到异步编程的深度解析
开发语言·javascript·全栈·javascript核心
AI科技星1 小时前
数术工坊・八卷全书【本源创世终极版・万世定稿】
开发语言·网络·量子计算·拓扑学