用Java写程序,创建一张卡片父类:定属性包括主人名称、余额、支付功能。创建一张金卡类:重写支付功能,按照原价的8折计算输出。创建一张银卡类: 重写支付功能,按照原价的8.5折计算输出。
时间: 2023-06-15 20:06:38 浏览: 60
下面是Java程序实现:
```java
// 定义卡片父类
class Card {
protected String owner; // 主人名称
protected double balance; // 余额
// 构造函数
public Card(String owner, double balance) {
this.owner = owner;
this.balance = balance;
}
// 支付功能
public void pay(double amount) {
if (balance >= amount) {
balance -= amount;
System.out.println(owner + "支付" + amount + "元,余额为" + balance + "元");
} else {
System.out.println(owner + "余额不足,支付失败");
}
}
}
// 金卡类
class GoldCard extends Card {
// 构造函数
public GoldCard(String owner, double balance) {
super(owner, balance);
}
// 支付功能重写,按照8折计算
public void pay(double amount) {
double discount = 0.8;
super.pay(amount * discount);
}
}
// 银卡类
class SilverCard extends Card {
// 构造函数
public SilverCard(String owner, double balance) {
super(owner, balance);
}
// 支付功能重写,按照8.5折计算
public void pay(double amount) {
double discount = 0.85;
super.pay(amount * discount);
}
}
public class CardDemo {
public static void main(String[] args) {
// 创建一张金卡和一张银卡
GoldCard goldCard = new GoldCard("张三", 1000);
SilverCard silverCard = new SilverCard("李四", 2000);
// 使用金卡和银卡进行支付测试
goldCard.pay(100);
silverCard.pay(200);
}
}
```
运行结果:
```
张三支付80.0元,余额为920.0元
李四支付170.0元,余额为1830.0元
```