2012-03-14 72 views
2

我有一个奇怪的(也许是愚蠢的)问题:我想知道....为什么java的“对象”类称为“对象”,而不是“类”?为什么称为“Object”的java“最高”超类?

例如,对于ArrayList的磨片有以下层次

Object -> 
Collection -> 
List -> 
ArrayList 

OK:ArrayList的是一个清单...名单是一家集...但集合(类中的所有收藏品的)是不是对象......这是一堂课!

+0

所有对象的默认超类是Object。如果你声明一个没有超类的类,它的超类是Object。 – 2012-03-14 17:45:40

+0

你真的不能拥有一个物体的超类,你能吗?只有班级应该有超类。 – drozzy 2012-03-14 20:10:40

回答

11

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

集合是不是一类的集合 - 这是集合(和它的对象)。

+2

另外,无论是List还是Collection都是它们是接口的类。 – twain249 2012-03-14 17:45:03

+1

这句话:“类名描述该类所代表的实例。”回答我的问题!谢谢! – Salles 2012-03-14 17:50:14

3

嘛,你使用Object申报实例的(不是更好指定的)对象一样,同样使用Collection申报实例的集合

可以声明类型类的对象也与java.lang.Class<T>,其中它的一个实例表示对象

1

Collection的类是一个接口(有效一种特殊类型的类)。

ACollection是一个对象。

+0

我的问题是:为什么不使用类而不是对象:一个集合的实例是一个对象...但类(或接口)集合不是一个对象...它是一个“类” – Salles 2012-03-14 17:55:43

+0

@Salles对象是所有对象的类;集合是所有集合的类。 – 2012-03-14 19:36:12

1

你的假设是不正确的。对于ArrayList的正确hiearchy是:
的ArrayList - > AbstractList的 - > 类AbstractCollection - > 对象

因此,即使ArrayList的对象已在其层次结构中的第一件事情。

相关问题