Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ArrayList の継承について(初心者です)

買い物かごクラスのプログラムを作っています。
このソースはフィールドにListを持たせているのですが、ArrayList を継承
してCartクラスを作りたいです。そうすることで、CartクラスのaddItem()
メソッドやremoveItem()メソッドはmainでメソッドを呼び出せば良いため、
不要になると思うのですが、合計金額を求めるときに、どのように商品値段
を参照していいのかわかりません。

また、ArrayList を継承する場合、public class Cart extends ArrayList 
という書き方で良いのでしょうか?



public class Cart {
 
    List<Item> itemList = new ArrayList<Item>();

    public ShoppingCart(){}

 //商品をカートに追加
    public void addItem(Item item){
        itemList.add(item);
    }


  //カート内に入っている商品の合計金額を返却
    public int getTotalPrice(){
        int total=0;

        for(int i=0;i<getItemSize();i++){
            total+=itemList.get(i).getPrice();
        }
        return total;
    }

  //リストの指定された位置にある要素を削除
    public void removeItem(int index){
        itemList.remove(index);
    }
}

2

回答

8465

閲覧

2件の回答

評価

0

まずはやってみよう。

そして失敗してから聞こうか

評価

0

すでにやってるのに、なんでそれを継承すると分からなくなるのかが分からないな
あ。

継承と委譲は、考え方や目的が若干違う。
継承する場合は、何もしなければ元となるクラスの挙動を引き継ぐのを忘れないよ
うに。
元となるクラスのどの挙動をそのまま使い、どの挙動を変え、どの挙動が望ましく
ないか。
そのまま使う分が余りに少ないなら、継承のアプローチは間違っているかもしれな
い。
作るものによるので、一概に継承することが正しいとも、誤りだとも言えないけ
ど。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。