我知道它通常被用作锁定对象,但这真的是充分的理由吗?的意义是什么
object o = new object();
非抽象类是表示实际对象的东西."asdasdf"是一个字符串.什么实际的实例可以有"对象"类?没有意义,OOP明智.我的问题是它是否存在某种实际原因(除了用作锁定对象).
回答这个问题的最简单方法是问另一个问题:Object类是否有任何抽象概念?由于它没有理由是抽象的,所以不是.
有时您只需要一个Object,而不需要任何其他内容,例如在实现多线程锁定时使用随机引用类型.不使对象抽象允许在这些情况下使用.Monitor.Enter和Monitor.Exit类(它是C#中"lock"关键字的基础)可以获取任何给定对象的锁定,而不管实现如何.
当然,一个类是抽象的意味着它有一些需要实现的功能......
System.Object执行它所需的一切,因此它不是Abstract.
我认为你误解了为什么事情是抽象的,这是因为它们包含一些有用的功能,并没有规定你如何实现它们的某些功能部分.
基本上它们是半制造的类,就像一个模型工具包,你可以自定义按照你想要的方式工作,但你不必从头开始整个过程.
它们不存在阻止您创建它们的实例.