2017-06-03 44 views
1

我正在製作JavaFX應用程序以跟蹤公司庫存。用戶可以添加/刪除/修改零件和產品。JavaFX將抽象類對象添加到arraylist

的零件和產品類有屬性和getter和setter方法,但是部分是一個抽象類 -

Product    Part<Abstract> 

id     id 
name     name 
price    price 
min     min 
max     max 
get/set    get/set 

我有3周的ArrayList中顯示的一個實現代碼如下 -

private ObservableList<Part> allParts = FXCollections.observableArrayList(); 
private ObservableList<Product> products = FXCollections.observableArrayList(); 
private ObservableList<Part> associatedParts = FXCollections.observableArrayList(); 

如何Part是否爲抽象類並且無法實例化時,是否可以將新零件添加到allParts和associatedParts陣列列表?

如何將某些零件與某些產品關聯?每個產品必須始終有一個或多個關聯的零件。

+1

你可以在列表中放入Part的任何子類型。如果'Foo' _is是'Part'的子類型,那麼如果一個實例_是a_'Foo',它就是''Part''。這是繼承的心臟和靈魂。參見Liskov替代原則。 –

+0

Java抽象清單可能是一個很好的例子。例如:'列表 list = new ArrayList();''和'列表 list2 = new LinkedList();' – Sedrick

回答

0

正如在評論子類Part中建議使用它的實例。
同樣子類Productprivate ObservableList<Part> associatedParts = FXCollections.observableArrayList();添加到它,跟蹤相關的部分。

+0

感謝你們的幫助。 – cowboydan

+0

不客氣。請參閱stackoverflow.com/help/someone-answers(如果您還沒有) – c0der