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

时间:2014-05-07 14:01:55

标签: java

我觉得这个晚上有一个前肢, 众所周知,所有班级的超级班级都是java.lang.Object, 但为什么不是抽象类?

2 个答案:

答案 0 :(得分:2)

你可以说它只是一个任意的设计决定,但主要的好处是,通过不标记类摘要,你可以创建Object类型的实例。

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

答案 1 :(得分:2)

Object没有任何抽象方法,所以使类抽象会阻止它被实例化(尽管你可以通过:new Object() {};)这是一个不必要的限制。

实际上,实例化一个Object有时会很方便,例如创建一个锁:

private final Object lock = new Object();