案例三:商品库存统计系统(核心:static + 继承 + 多态 + 抽象类 + final 属性)
2026/4/14 18:07:13 网站建设 项目流程

需求:
抽象类Product(商品):包含final商品编号、名称、价格,静态统计总库存数、静态方法获取总库存;

抽象方法getSellPrice()(获取售卖价),子类实现;

子类Phone(手机:原价售卖)、Laptop(笔记本:9 折售卖);

每创建一个商品对象,静态库存数自动 + 1;

多态遍历商品数组,计算所有商品总价值,打印库存信息。

编号:P001 | 名称:iPhone15 | 售价:5999.0 编号:L001 | 名称:联想小新 | 售价:4499.1 编号:P002 | 名称:小米14 | 售价:3999.0 ------------------------ 商品总库存:3 所有商品总价值:14497.1

思路分析:

步骤 1:

  1. 定义抽象类Product(顶层设计)
  2. 用final修饰商品编号、名称、价格,确保这些核心属性不可被修改;
  3. 声明static静态变量统计总库存(所有商品共享),每创建一个商品对象就自动 + 1;
  4. 定义抽象方法getSellPrice(),强制子类根据自身规则实现 “售卖价计算逻辑”;
  5. 提供静态方法获取总库存,封装库存数据的访问逻辑。
public abstract class Product { final String id; String name; double price; //静态总库存数 private static int total = 0; //静态方法获取总库存 public static int getTotal(){ return total; } //抽象方法 public abstract double getSellPrice(); public Product(String id, String name, double price) { this.id = id; this.name = name; this.price = price; total++; } public String getId() { return id; } public String getName() { return name; } public double getPrice() { return price; } }

步骤 2:

实现子类 Phone和Laptop(继承 + 方法重写)
子类继承Product,通过构造方法初始化父类的final属性;
重写getSellPrice():手机按原价返回,笔记本按 9 折(原价 ×0.9)返回;
子类构造方法中触发 “总库存 + 1” 的逻辑(可放在父类构造方法中,简化子类代码)。

public class Laptop extends Product{ public Laptop(String id, String name, double price) { super(id, name, price); } @Override public double getSellPrice() { return getPrice() * 0.9; } }
public class Phone extends Product{ public Phone(String id, String name, double price) { super(id, name, price); } @Override public double getSellPrice() { return getPrice(); } }

步骤 4:

多态遍历计算总价值(多态核心应用)
  • 遍历Product集合,通过父类引用调用子类重写的getSellPrice(),自动适配不同商品的售价规则;
  • 累加所有商品的售卖价,得到总价值。

步骤 5:

输出结果(打印库存和总价值)
  • 调用静态方法获取总库存,打印每个商品的详情,最后输出总库存和总价值。
import java.util.ArrayList; public class ProductTest { public static void main(String[] args) { //创建集合 ArrayList<Product> products = new ArrayList<>(); products.add(new Phone("P001", "iPhone15", 5999)); products.add(new Laptop("L001", "联想小新", 4999)); products.add(new Phone("P002", "小米14", 3999)); //总价值 double totalValue = 0; //遍历集合 for (int i = 0; i < products.size(); i++) { Product p = products.get(i); System.out.println("编号:" + p.getId() + " | 名称:" + p.getName() + " | 售价:" + p.getSellPrice()); totalValue += p.getSellPrice(); } //统计信息 System.out.println("------------------------"); System.out.println("商品总库存:" + Product.getTotal()); System.out.println("所有商品总价值:" + totalValue); } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询