2016-05-02 17 views
0

私は、CountableItemUncountableItemという名前のこのクラスを拡張する、Itemクラスと2つのクラスを持っています。Java継承

CountableItemには、quantityという名前のインスタンス変数が1つあり、UncountableItemクラスにはweightという名前のインスタンス変数が1つあります。

かれらのコンストラクタは

public CountableItem(int id, String name, double unitPrice, Date experitionDate,int quantity) { 
super(id, name, unitPrice, experitionDate); 
setQuantity(quantity); 
} 

public UncountableItem(int id, String name, double unitPrice, Date experitionDate,double weight) { 
super(id, name, unitPrice, experitionDate); 
setWeight(weight); 
} 

のようなものですし、別のクラスで私は何か、どのくらい入るメインクラスのユーザーでArrayList

private ArrayList<Item> storeList = new ArrayList<>(); 

内の項目を保持します彼は購入したい。 しかし、私のarraylistはアイテムを保持しているので、量や重量を変更することはできません。 あなたは1で、二重に設定したいので、あなたが持っているアイテムの種類を見つけるためにinstanceof演算子使用することができます:(

+1

[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を投稿してください。これらのメソッドは、独自のsetCountOrWeight(String s)メソッドを使用して解析し、正しいデータ型を設定します。 。 – MikeCAT

+0

私はあなたの質問/あなたが達成しようとしていることを理解していません –

+1

あなたが求めていることを理解するのは難しいですが、 'if(item instanceof UncountableItem)'をチェックできるはずです。 –

答えて

0

に役立ちます。しかし、これは素晴らしいOODではありません。

してください選択肢は少しトリッキーです大文字と小文字を区別することができますが、Webシナリオでは、値を文字列として取得していると仮定しているため、Itemは抽象化され、抽象setCountOrWeight(String s)