2017-06-03 118 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