定义商品类Goods,包含单价unitPrice和数量account两个属性,方法包括构造方法和价格计算方法totalPrice()。定义接口VipPrice,包含DISCOUNT属性和reducedPrice()方法,使VIP会员享受商品价格8.5折待遇。定义服装子类Clothing,它继承商品类Goods,并实现接口VipPrice,并有服装样式style属性、构造方法和toString方法。编写一个测试类,创建一种服装(180,2,“女装” ),利用toString方法输出服装信息。
时间: 2024-03-06 16:48:53 浏览: 108
以下是代码实现:
```java
// 定义商品类Goods
class Goods {
double unitPrice; // 单价
int account; // 数量
// 构造方法
public Goods(double unitPrice, int account) {
this.unitPrice = unitPrice;
this.account = account;
}
// 价格计算方法
public double totalPrice() {
return unitPrice * account;
}
}
// 定义VIP价格接口VipPrice
interface VipPrice {
double DISCOUNT = 0.85; // 折扣
// 计算VIP会员折后价格
default double reducedPrice(double price) {
return price * DISCOUNT;
}
}
// 定义服装子类Clothing
class Clothing extends Goods implements VipPrice {
String style; // 服装样式
// 构造方法
public Clothing(double unitPrice, int account, String style) {
super(unitPrice, account);
this.style = style;
}
// 重写toString方法
public String toString() {
double price = super.totalPrice(); // 原价
double reducedPrice = reducedPrice(price); // 折后价格
return "商品信息:\n单价:" + unitPrice + " 元\n数量:" + account + " 件\n服装样式:" + style +
"\n原价:" + price + " 元\n折后价:" + reducedPrice + " 元";
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Clothing clothing = new Clothing(180, 2, "女装");
System.out.println(clothing.toString());
}
}
```
输出结果:
```
商品信息:
单价:180.0 元
数量:2 件
服装样式:女装
原价:360.0 元
折后价:306.0 元
```
阅读全文