2011-06-28 6 views
1

私はJavaプログラミングの初心者で、ここで多形参照を扱うための正しい方法が何であるか理解したいと思います。多形参照を使用したJavaコレクション

List<Fruit*> lstFruit; 
... 
// collect apples here 
while (...) 
{ 
    Fruit* apple = new Apple("green"); 
    lstFruits.append(apple); 
} 
... 
lstFruit[i]->doSomething(); // here is our virtual method 

Javaは私がabstractある基底クラスを参照してListコレクションを作成することはできません:

は、私たちがC++で、次の(抽象)コードがあるとします。この状況で私は何をすべきですか?私の目標は、クラスが実際にどのようなものであっても、子クラスの異なるオブジェクトで普遍的に作業することです。

+0

回答は正しいです。 Javaで試したコードサンプルを提供してください。 –

+0

リストリスト=新しいリスト(); –

答えて

5

あなたはastractクラスとジェネリックコレクションを作成することができます:ドル紙幣から

List<Fruit> l = new ArrayList<Fruit>(); 
l.add(new Apple()); 
l.get(0).someFunctionOnFruit(); 
+0

基本クラスは抽象であるため、Javaからエラーが発生します。「型リストをインスタンス化できません」。 –

+1

ListはJavaのインタフェースですが、ArrayListをインスタンス化することもできます。 –

+0

ええ、ごめんなさい、私はArrayListと言っていました。今修正されました。 –

関連する問題