2011-06-28 34 views
1

我是Java編程的初學者,想要了解在此處使用多態引用的正確方式是什麼。具有多態引用的Java集合

假設我們在C++以下(摘要)代碼:

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

Java沒有讓我產生List收集與基類是abstract引用。在這種情況下我應該怎麼做?我的目標是普遍地處理不同類別的子類對象,而不管他們的類是什麼。

+0

從五元美鈔答案是正確的。您能否提供您在Java中嘗試過的代碼示例? –

+0

列表 list = new列表(); –

回答

5

您可以創建一個泛型集合與astract類:

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

請注意,基類是抽象的,所以我從Java中得到錯誤:「無法實例化類型列表」。 –

+1

列表是Java中的一個接口 - 但是您可以實例化ArrayList。 –

+0

是的,對不起,我打算說ArrayList。現在已經糾正了。 –