c# - 可以禁止子类定义类吗?

标签 c# class inheritance restriction

您好,我正在使用 unity 3D 与 lidgren 建立自己的网络。

有一次我为自己制作自定义图形用户界面时也遇到过这个问题,但问题不大。对其他开发人员的一个小警告没有什么帮助。

但这一次我需要更好的解决方案。

假设我有一个 BaseClass 和一个 Child:

public class BaseClass : MonoBehavior {
    void Update() {
        //my connectionhandler
    }
}

public class Child : BaseClass {

    // forbid it to define Update
    void Update() {

    }

    // or let him use it but without writing base.Update() it should still use BaseClass Update()

}

正如您在两个类中看到的那样,我都有 void Update()。那个问题是如果 child 也使用 void Update 那么基础 Update 就不会再被调用了。有可能避免它。如果 base 已经定义,示例限制对更新方法的访问? 或者可以让 child 使用 void Update() 的定义,但基类也应该能够使用他自己的 Update()(后台工作:P)

其他开发人员不应每次都使用 base.Update()。我相信他们会多次忘记这一点 :)

最佳答案

您正在寻找 sealed 关键字,它可以防止进一步派生的类覆盖 virtual 方法。

关于c# - 可以禁止子类定义类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32280275/

相关文章:

c# - 如何使用 Localizer 本地化 asp-action

c# - 如何判断.NET HttpClient 返回的内容是否压缩?

php - Laravel - 如何使用供应商类?

php - 在 PHP 中使用特征

JavaScript继承: why copy from an instance?

java - 为子类传递构造函数参数时出现"Could not resolve matching constructor"错误

c# - 在 soap 中读取 XML 配置文件

c# - 如何从自动生成 gridview 列的 excel 中保存我的数据?

java - “找不到或加载主类”是什么意思?

c# - 派生类定义的基类集合