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

相关推荐
Qlittleboy6 分钟前
PHP的接口参数传递的过多,max_input_vars = 5000
开发语言·php
Aurorar0rua7 分钟前
CS50 x 2024 Notes Algorithms - 02
c语言·开发语言·学习方法
en.en..16 分钟前
冒泡排序与选择排序完整对比解析
开发语言·数据结构·算法·c#·排序算法
兰令水21 分钟前
hot100【acm版】【2026.7.18打卡-java版本】
java·开发语言·算法
cui_ruicheng30 分钟前
Python从入门到实战(十三):模块、包与环境管理
开发语言·python
就叫飞六吧44 分钟前
子页面和dialog案例
开发语言·javascript·ecmascript
倒流时光三十年1 小时前
Logback 系列(3):三大核心组件 Logger / Appender / Encoder
java·开发语言·logback
淡海水2 小时前
06-04-YooAsset源码-Unity加密解密服务
前端·unity·性能优化·c#·游戏引擎·yooasset
Darkwanderor2 小时前
动、静态库相关内容的详细介绍
linux·c语言·开发语言·c++
文祐2 小时前
C++类之虚函数表没有虚继承的菱形继承
开发语言·c++·算法