栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么我不能继承静态类?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么我不能继承静态类?

从这里引文:

这实际上是设计使然。似乎没有充分的理由继承静态类。它具有公共静态成员,您始终可以通过类名称本身访问它。
我看到的继承静态内容的唯一原因是不好的原因,例如保存了几个打字字符。

也许有理由考虑将静态成员直接带入范围的机制(实际上,我们将在Orcas产品周期之后考虑这一点),但是静态类继承并不是要走的路:这是使用错误的机制,并且有效仅针对碰巧驻留在静态类中的静态成员。

(Mads Torgersen,C#语言PM)

来自channel9的其他意见

.NET中的继承仅在实例基础上起作用。 静态方法是在类型级别而不是实例级别定义的。这就是为什么覆盖不适用于静态方法/属性/事件的原因…

静态方法仅在内存中保存一次。没有为它们创建的虚拟表等。

如果在.NET中调用实例方法,则始终为它提供当前实例。.NET运行时将其隐藏,但是会发生。
每个实例方法都有一个指向该方法在其上运行的对象的指针(引用)作为第一个参数。
静态方法不会发生这种情况
(因为它们是在类型级别定义的)。编译器应如何决定选择要调用的方法?

(小小古鲁)

作为一个有价值的想法, littleguru
对于此问题有部分“解决方法”:Singleton模式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号