为什么java“最高”的超类称为“对象”?

时间:2012-03-14 17:41:12

标签: java oop object

我有一个奇怪的(也许是愚蠢的)问题:我在想......为什么java“Object”类叫做“Object”而不是“Class”?

例如,对于ArrayList,具有以下层次结构

Object ->
Collection ->
List ->
ArrayList 

好的:ArrayList是一个List ... List是一个Collection ...但是Collection(所有集合的类)不是一个Object ......它是一个类!

4 个答案:

答案 0 :(得分:11)

想想对象本身是什么。 ArrayList是一个列表,是吗?它也是一个对象。它是不是一类对象。类名描述了该类的实例

集合不是集合类 - 它是集合(它是一个对象)。

答案 1 :(得分:3)

好吧,你使用Object来声明一个(没有更好指定的)对象的实例,就像你使用Collection来声明一个实例一样 of a Collection。

您也可以使用java.lang.Class<T>声明类型为Class的对象,其中实例表示对象的类

答案 2 :(得分:1)

Collection是一个接口(实际上是一种特殊类型的接口)。

Collection是一个对象。

答案 3 :(得分:1)

您的假设不正确。 ArrayList的正确层次结构是:
ArrayList - &gt; AbstractList - &gt; AbstractCollection - &gt; 对象

因此,即使ArrayList也将Object作为其层次结构中的第一件事。