【问题标题】:How to add abstract arraylist inside abstract arraylist如何在抽象数组列表中添加抽象数组列表
【发布时间】:2021-08-23 11:15:39
【问题描述】:

所以我有这个问题。我想做购物车程序。我声明了 3 个类,例如 Food、Drinks 和 Miscs。这些类成为客户购买的物品。每个类都包含 String Name 和 int price。然后有一个 Cart 类,用于列出客户购买的商品,还有 String Name 和 int Price。

我想在主课上写:

public class main{
  public static void main(String[] args){
   Arraylist<Cart> Cart = new Arraylist();
   Foods Food1 = new Foods("Bread", $10);
   Foods Food2 = new Foods("Waffle", $8);
   Drinks Drink1 = new Drinks("Coke", $9);
   Drinks Drink2 = new Drinks("Sprite", $7);
   Miscs Miscs1 = new Miscs("Soap", $5);
   Miscs Miscs2 = new Miscs("Shampoo", $5);

   Cart.add(Food1);
   Cart.add(Food2);
   Cart.add(Drink1);
   Cart.add(Drink2);
   Cart.add(Miscs1);
   Cart.add(Miscs2);
   }}

我需要创建一个可以将这些数据类型添加到购物车类中的数组列表中的方法。但是如果我写了

public void add(Arraylist <Cart> cart){
   
}

它只会接收购物车类型的数据,所以我无法输入食物或饮料或杂项类型的数据,甚至无法输入名称和价格等相同的详细信息。

【问题讨论】:

    标签: java class arraylist abstract extends


    【解决方案1】:

    使用 OOP。

    选项 1:

    创建一个抽象类Item,它具有nameprice 作为属性。 FoodDrinksMiscs 将扩展 Item

    Cart 类具有 itemList 的属性,它将保存项目列表。

    public class Cart {
      List<Item> itemList = new ArrayList<>();
      //getter setter
      public void add(Item item) { 
         itemList.add(item);
      }
    
    }
    

    选项 2:

    创建一个iterface Item,这样FoodDrinksMiscs将实现Item Cart 类几乎保持不变。

    【讨论】:

    • 谢谢,我用过工具,也用过扩展。而且看起来还不错。谢谢你的回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2015-01-08
    相关资源
    最近更新 更多