我有一个奇怪的(也许是愚蠢的)问题:我在想......为什么java“Object”类叫做“Object”而不是“Class”?
例如,对于ArrayList,具有以下层次结构
Object ->
Collection ->
List ->
ArrayList
好的:ArrayList是一个List ... List是一个Collection ...但是Collection(所有集合的类)不是一个Object ......它是一个类!
答案 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作为其层次结构中的第一件事。