2014-03-02 74 views
-1

我有一個抽象類carowners。和兩個子類personcompany。 抽象類carowners具有字段:如何創建子類對象的java抽象類列表

  • 名稱
  • 地址
  • 下(參考下一個對象(或personcompany))。

我需要的carowners的列表,其中該列表中的對象將是某個Person對象或Company - 對象(和CarOwner型的間接對象)。 我知道如何創建類型CarOwnersLinkedlistArrayList,但它不是我的要求。我需要一個abstractclassi.e carowners列表來存儲人員和公司對象,每個對象引用另一個使用抽象類中的next的對象。

+0

現在還不清楚,你在問什麼 –

+1

*你的要求是什麼? –

+0

你試過了什麼代碼? –

回答

0

聽起來像是你要存儲的創建,無論它們是否是Person對象或Company對象CarOwner的所有實例。這可以來實現這樣的:

abstract class CarOwner 
{ 
    private static final List<CarOwner> allCarOwners = new ArrayList<CarOwner>(); 
    public static List<CarOwner> getAllCarOwners() 
    { 
     return Collections.unmodifiableList(allCarOwners); 
    } 

    CarOwner() 
    { 
     CarOwner.allCarOwners.add(this); 
    } 
} 

class Person extends CarOwner { } 
class Company extends CarOwner { } 

// To be used with 
Person peson0 = new Person(); 
Person peson1 = new Person(); 
... 
Company company0 = new Company(); 
Company company1 = new Company(); 

List<CarOwner> all = CarOwner.getAllCarOwners(); 

// Prints person0, person0 ..., company0, company1.... 
System.ut.println(all); 

但是,如果這是什麼要求,它是有點懷疑,因爲它像一個內置的內存泄漏。