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

相关推荐
人工智能AI技术2 小时前
315曝光AI投毒!用C#构建GEO污染检测与数据安全防护方案
人工智能·c#
myloveasuka2 小时前
Java与C++多态访问成员变量/方法 对比
java·开发语言·c++
2301_821700533 小时前
C++编译期多态实现
开发语言·c++·算法
奥地利落榜美术生灬3 小时前
c++ 锁相关(mutex 等)
开发语言·c++
xixihaha13243 小时前
C++与FPGA协同设计
开发语言·c++·算法
重庆小透明3 小时前
【java基础篇】详解BigDecimal
java·开发语言
ID_180079054733 小时前
模拟1688商品详情的Python API实现,返回符合风格的JSON数据
开发语言·python·json
小小怪7503 小时前
C++中的函数式编程
开发语言·c++·算法
金山几座3 小时前
C#学习记录-事件
开发语言·学习·c#
小杍随笔4 小时前
【Rust 语言编程知识与应用:基础数据类型详解】
开发语言·后端·rust