【问题标题】:how are static class instantiated静态类是如何实例化的
【发布时间】:2011-08-20 00:34:46
【问题描述】:

我想知道静态类是如何实例化的。 我的意思是根据 OOPS 概念,没有实例化它就不能使用任何类。但是我们仍然可以使用静态类而不实例化它,那么静态类何时以及如何实例化。

编辑-------

当我继承一个抽象类并创建一个子类的实例时,我也对构造函数调用感到困惑。谁能给我解释一下。

提前致谢。

【问题讨论】:

  • 任何特定的语言/框架?
  • @rowland:你可以参考 C# 来解释一下这个概念。
  • @unapersson : “静态类”非常常用,我很惊讶你没有听说过静态类。我以 C#(.NET) 作为参考,我不知道静态类在其他语言/框架中是否有不同的名称
  • @unapersson 静态类是 .Net 世界中的扩展方法必需的; Console 类在大多数拥有它(或类似的东西)的 OOP 语言中通常是静态的
  • @Rowland 好吧,当然 C++ 不会,除非您所说的静态类是指仅包含静态数据和函数成员的类。在这种情况下,它是“单态”模式的一个示例。

标签: oop instance creation static-classes


【解决方案1】:

机制因框架而异,但在 .Net 世界中,静态构造函数在类型初始化时被调用——关键要记住,开发人员无法直接控制何时调用构造函数,所以在特定版本的框架中依赖特定的实现是很危险的。

【讨论】:

  • 谢谢,您能否检查已编辑的问题,我也想了解抽象类。\
  • @Sumit 这是一个不同的问题,需要进一步的细节(例如,是否涉及显式构造函数,你只对编译器提供的构造函数感兴趣,等等) - 你最好将它作为单独的问题,假设像 stackoverflow.com/q/1882692/50447 这样的问题的答案还没有为您解答。
  • 嗯,好的,那么我会提出一个不同的问题。
猜你喜欢
  • 1970-01-01
  • 2012-09-23
  • 2016-03-11
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多