演習問題1(ショッピングカート 合計金額)


演習問題1-1 (Template Method)

Enshu101 が正しく動作するように、ポリモーフィズムを利用して、次の要件を満たす Vegetable クラスと Meat クラス、Cart クラス、そして必要と思われるクラスを作成しなさい。

また、将来的には、扱う食品の種類が増える可能性がありますが、そのときでも Cart クラスを変更しなくてもよいように作成しなさい。

実行結果
現在の合計金額は 949 円です。


コード

Enshu101.java
public class Enshu101 { public static void main(String[] args) { Cart cart = new Cart(); cart.add(new Vegetable("大根", 125, 1)); cart.add(new Meat("豚肉", 98, 250)); cart.add(new Vegetable("レタス", 147, 1)); cart.add(new Vegetable("トマト", 69, 4)); cart.add(new Meat("鶏肉", 78, 200)); System.out.println("現在の合計金額は " + cart.getTotalPrice() + " 円です。"); } }
Goods.java
public abstract class Goods { protected String name = null; protected int price = 0; public Goods() {} public Goods(String name, int price) { this.name = name; this.price = price; } public String getName() { return name; } public int getUnitPrice() { return price; } public abstract int getPrice(); // インタフェースの定義 }






演習問題1-1 (Template Method)