为什么java.lang.Object类不是抽象类?

why not java.lang.Object class is abstact class?

本问题已经有最佳答案,请猛点这里访问。

我想今晚有个道具,大家都知道,所有班级的超级班级都是java.lang.Object,但是为什么它不是抽象类呢??


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

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

1
private final Object lock = new Object();

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

由于Object类的所有方法都已完全实现,因此将其标记为抽象类没有内在的好处。