You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建Shopping类实例时,如何构造ArrayList<Shop>参数?

解决Shopping类实例化时的ArrayList参数问题

嘿,我来帮你理清这个问题!其实步骤很简单,核心是利用Java的多态特性——因为Shop是所有店铺子类的父类,所以子类的实例都可以直接存入ArrayList<Shop>中,再把这个列表作为参数传给Shopping的构造方法就行。

具体操作步骤

  1. 创建店铺子类的实例
    先根据你的4个店铺子类(比如假设是GroceryShop、ClothingShop、ElectronicsShop、BookShop)创建具体实例:

    // 示例:创建不同类型的店铺子类对象
    Shop groceryStore = new GroceryShop("Daily Mart", 150.0, 8500.0);
    Shop clothingStore = new ClothingShop("Fashion Hub", 220.0, 12000.0);
    Shop electronicsStore = new ElectronicsShop("Tech World", 300.0, 18000.0);
    Shop bookStore = new BookShop("Page Turners", 100.0, 6000.0);
    
  2. 创建ArrayList并添加店铺实例
    初始化一个ArrayList<Shop>,然后把上面创建的店铺实例逐个加进去:

    ArrayList<Shop> shopList = new ArrayList<>();
    shopList.add(groceryStore);
    shopList.add(clothingStore);
    shopList.add(electronicsStore);
    shopList.add(bookStore);
    
  3. 实例化Shopping类
    最后把这个shopList作为参数传入Shopping的构造方法:

    Shopping myShopping = new Shopping("Urban Shopping Complex", shopList);
    

简化写法(一步到位)

如果你不想分步骤写,也可以用Arrays.asList()结合ArrayList的构造方法,直接在创建Shopping实例时初始化列表:

Shopping myShopping = new Shopping("Urban Shopping Complex", 
    new ArrayList<>(Arrays.asList(
        new GroceryShop("Daily Mart", 150.0, 8500.0),
        new ClothingShop("Fashion Hub", 220.0, 12000.0),
        new ElectronicsShop("Tech World", 300.0, 18000.0),
        new BookShop("Page Turners", 100.0, 6000.0)
    ))
);

这里要注意:Arrays.asList()返回的是固定大小的列表,所以需要用new ArrayList<>()包装一下,确保后续可以自由添加或删除店铺实例。

内容的提问来源于stack exchange,提问作者Luís Lira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:20:03