当前有账单类(Bill),有计算账单的方法calculate。账单类有两个子类分别是天然气账单(GasBill)有一个属性天然气用量(cubicMeters),天然气账单的计算方法calculate为天然气用量*5;电话号码账单(PhoneBill),有2个属性,分钟数(minites)、流量(stream)GB,电话费账单的计算方法calculate为分钟数*0.2加上流量*10; (1)定义出3个类Bill、GasBill、PhoneBill; (2)定义出GasBill、与PhoneBill的全参构造函数用于初始化各自的账单信息; (3)写一个测试类BillDemo 测试如下代码:创建 GasBill、PhoneBill的对象,验证能不能赋值给Bill。如果可以,观察调用Bill 的calculate 方法时该方法的表现行为。
时间: 2024-04-15 14:32:10 浏览: 59
账单
这是一个符合要求的代码示例:
```java
class Bill {
public double calculate() {
return 0;
}
}
class GasBill extends Bill {
private double cubicMeters;
public GasBill(double cubicMeters) {
this.cubicMeters = cubicMeters;
}
public double calculate() {
return cubicMeters * 5;
}
}
class PhoneBill extends Bill {
private int minutes;
private double stream;
public PhoneBill(int minutes, double stream) {
this.minutes = minutes;
this.stream = stream;
}
public double calculate() {
return minutes * 0.2 + stream * 10;
}
}
public class BillDemo {
public static void main(String[] args) {
Bill gasBill = new GasBill(10);
Bill phoneBill = new PhoneBill(100, 2.5);
System.out.println(gasBill.calculate()); // 输出50.0
System.out.println(phoneBill.calculate()); // 输出205.0
}
}
```
在上面的代码中,Bill 是父类,GasBill 和 PhoneBill 是它的两个子类。GasBill 和 PhoneBill 分别实现了父类的 calculate 方法,并根据各自的计算规则进行计算。在 BillDemo 类中,我们创建了 GasBill 和 PhoneBill 的对象,并通过调用父类 Bill 的引用来调用 calculate 方法。结果表明,GasBill 对象调用 calculate 方法返回的值是 50.0,PhoneBill 对象调用 calculate 方法返回的值是 205.0。这说明 GasBill 和 PhoneBill 对象可以成功赋值给 Bill 类型的引用,并且在调用 calculate 方法时表现出了各自的行为。
阅读全文