更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
某电商平台需要管理商品和订单,涉及不同类型商品(普通商品、打折商品)的价格计算,以及订单的创建与结算。 相关类描述如下: 商品类 Product: 私有属性(String id, String name 和 double originalPrice),省略Getter和Setter方法,具有构造方法和计算价格 calculatePrice()抽象方法; 普通商品类 NormalProduct:Product 类子类,继承父类的构造方法,重写计算价格方法-返回原价; 折扣商品类 DiscountProduct:Product 类子类,新增折扣率属性,继承构造方法,重写计算价格方法-价格=原价×折扣率(保留2位小数); 订单类 Order,私有属性(String orderId 和 List<Product> products),包含构造方法、添加商品方法 addProduct()、获取商品列表方法 getProducts()和计算总金额方法 calculateTotalPrice()。 运行类 EcommerceTest,main 函数完成:创建商品(多态)、创建订单、添加商品到订单、遍历打印订单详情、打印订单总金额。 预期订单商品详情: ID:P001 名称:月亮与六个便士,原价:69.90元,最终售价:41.94元 ID:P002,名称:小米无线键盘,原价:299.90元,最终售价:179.94元 订单总金额:221.88元 给出部分代码如下,完成该程序: class Product{ //封装:私有属性 private String id; private String name; private double originalPrice; //构造方法 public Product(String id,String name,double originalPrice){ this.id=id; this.name=name; this.originalPrice= originalPrice; } //省略Getter 和Setter 方法 //方法:计算最终售价 public double calculatePrice(); } class NormalProduct extends Product{ //继承父类构造方法 Public NormalProduct(String id, String name,double originalPrice) Super(id,name. originalPrice); } //重写:普通商品售价=原价 @Override Public double calculatePrice(){ Return getOriginalPrice } } Class DiscountProduct extends Product{ //新增属性:八折 //private double discountReat; //构造方法:调用父类构造+初始化折扣率 Public DisecoutProduct(String id, String name,double originalPrice, ,double discountReat) Super(id,name.orignalPrice); //重写:普通商品售价=原价 @Override Public double calculatePrice(){ Return getOriginalPrice(); } } Class DiscountProduct extends Product{ //新增特性表示折扣 Private double discounyRate; //构造方法:调用父类结构+初始化折扣率 public DiscountProduct(String id, String name, double originalPrice, double.discountRate){ super(id, name, originalPrice); this, discountRate discountRate: } //重写;打折商品售价-原价×折扣率(保留2位小数) @Override public double calculatcPrice(){ public class ECommerceTest{ public static void main(String[] args){ //1.创建商品(多态:父类引用指向子类对象) Product book= new NormalProduct("P001","月亮与六个便士:"69.9. 0.6); Product earphone = new DiscountProduct("P002","小米无线键盘", 299.9,0.6) //2.创建订单并添加商品 Order order = new Order ("0001"); order. addProduct(book); order. addProduct(keyboard); //3.遍历订单商品,打印详情(体现多态:调用子类重写的 calculatePrice) System. out.println("可单商品详情:"); for (Product produet : order. getProduets()){ System. out. printf("ID:%s,名称:%s、原价:%2f元,最终售价:%2f元%n"); produc t, get ld(). product. getNamcO, product. getOriginalPrice(), product.calculatePrice(); } //4.打印订单总企额 System.out.printf("订单总金额:%2f元 %n",order.caleulateTotalPricc()); } }
1 2