为什么java.lang.Object类不是Abstract类?

为什么java.lang.Object类不是Abstract类?,java,Java,我想今晚的一个节目, 众所周知,所有类的超类都是java.lang.Object, 但是为什么不是抽象类呢?您可以说这只是一个任意的设计决策,但主要的好处是,通过不将类标记为抽象类,您可以创建Object类型的实例 由于对象类的所有方法都已完全实现,因此将其标记为抽象并没有任何固有的好处。对象没有任何抽象方法,因此使类抽象将阻止它被实例化(尽管您可以通过:新对象(){};)这是不必要的限制 而且,能够实例化一个对象有时很方便,例如创建一个锁: private final Object lock

我想今晚的一个节目, 众所周知,所有类的超类都是
java.lang.Object

但是为什么不是抽象类呢?

您可以说这只是一个任意的设计决策,但主要的好处是,通过不将类标记为抽象类,您可以创建
Object
类型的实例


由于
对象
类的所有方法都已完全实现,因此将其标记为抽象并没有任何固有的好处。

对象
没有任何抽象方法,因此使类抽象将阻止它被实例化(尽管您可以通过:
新对象(){};
)这是不必要的限制

而且,能够实例化一个对象有时很方便,例如创建一个锁:

private final Object lock = new Object();

你为什么认为应该是这样?把你的想法放在这个问题上真的会改善它。这个问题本身就是一个封闭的问题。有一种思想认为抽象类应该有抽象方法。对象可能是抽象的,但它不是您有时想要的通用对象,这是间接有用的。+1用于任意设计决策。