2012-03-14 10 views
2

私は奇妙な(そしておそらく愚かな)質問があります。私は疑問に思っていました....なぜJava "Object"クラスは "Class"ではなく "Object"と呼ばれていますか?例えばJavaの「最高」のスーパークラスが「オブジェクト」と呼ばれるのはなぜですか?

、ArrayListには、WHE次の階層

Object -> 
Collection -> 
List -> 
ArrayList 

[OK]を持っているために:ArrayListのは...リストはコレクションリストです...しかし、コレクション(すべてのコレクションのクラスが)ではありませんオブジェクト...それはクラスです!

+0

すべてのオブジェクトのデフォルトのスーパークラスはObjectです。スーパークラスなしでクラスを宣言すると、スーパークラスはObjectになります。 –

+0

本当にオブジェクトのスーパークラスを持つことはできません。クラスだけがスーパークラスを持つ必要があります。 – drozzy

答えて

11

オブジェクト自体が何であるかを考えます。 ArrayListはリストです、はい?それもオブジェクトです。それはではなく、オブジェクトのクラスです。クラス名は、そのクラスのインスタンスが表すものを表します。

コレクションは、コレクションのクラスではない - それはコレクションだ(それはオブジェクトです)。

+2

また、リストもコレクションもクラスではありません。 – twain249

+1

このフレーズは次のようになります。「クラス名はそのクラスのインスタンスを表します。私の質問に答えました!ありがとう! – Salles

3

さて、あなたはコレクションのインスタンスを宣言するCollectionを使うのと同じ、(良くない指定された)オブジェクトのインスタンスを宣言するObjectを使用しています。

あなたはそれのインスタンス

1

Collectionインターフェイス(クラスの効果特殊なタイプ)であるオブジェクトのクラスを表すjava.lang.Class<T>でもClass型のオブジェクトを宣言することができます。

Collectionが対象です。

+0

私の質問は、objecの代わりにClassを使用しない理由:CollectionのインスタンスはObjectですが、Class(またはインターフェイス)CollectionはObjectではありません...クラス " – Salles

+0

@Salles Objectはすべてのオブジェクトのクラスです。コレクションとは、すべてのコレクションのクラスです。 –

1

あなたの前提は正しくありません。 ArrayListのための正しいhiearchyは次のとおりです。
のArrayList - > AbstractList - > AbstractCollection - > オブジェクト

そうでもArrayListには、その階層内の最初のものとしてオブジェクトいます。

関連する問題