2012-03-14 70 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的對象已在其層次結構中的第一件事情。

相關問題