一段时间以来,我一直在尝试确定为什么Object
该类有一个公共的、无参数的构造函数,或者实际上,为什么它没有被标记abstract
。
我看不到有必要(明确)调用的公共构造函数的合理情况Object
;我们只对派生类型的构造函数感兴趣。
我理解需要在 中提供一个默认构造函数Object
,以便为每个其他人提供Type
一个可以隐式或显式调用的默认构造函数。当然,这个默认构造函数只需要标记为protected
,不是吗?
我见过人们在线程同步中构造“空对象”;但是在这种情况下锁定“真实对象”不是更正确吗?
同样,由于Object
类公开的功能仅对派生类型有用(或静态调用),为什么它不是抽象类?这似乎是一个更好的设计,而不是让程序员觉得它可以自己有意义地实例化的类。
我怀疑答案可能与 CLR 的内部工作有关,但我想知道为什么有必要Object
拥有一个公共构造函数,以及是否有任何原因不能标记它abstract
。