为什么 C# 中无法继承静态类?
尽管实际希望以层次结构组织静态类,但 C# 限制了此类类的继承。这种限制源于语言创建者的设计考虑。
根据 C# 语言 PM Mads Torgersen 的说法,静态类继承是没有根据的,因为:
此外,.NET 中的继承仅在基于实例的方法上运行。静态方法是在类型级别而不是实例级别定义的,缺乏用于重写的必要虚拟表。调用静态方法也不同于实例方法,因为它们缺乏将当前实例作为第一个参数的隐式传递。这使得编译器无法确定在继承过程中调用哪个方法。
作为部分解决方案,可以利用单例模式来模拟继承的静态类的行为,而不会违反语言限制。
以上是为什么C#中静态类不能继承?的详细内容。更多信息请关注PHP中文网其他相关文章!