假设银行Bank已经有按整年计算利息的一般方法,其中year只能取整数,比如按整年计算方法为:vear*0.035*savedMoney。 建设银行 ConstructionBank和大连银行BankOfDalian 是Bank的子类,隐藏继承的成员变量year,并重写计算利息的方法即声明一个 double型的变量 year 。比如,当year 取值为 5.216时,表示计算5年216天的利息。建设银行或大连银行把5216的整数部分赋给隐藏的vear,并用super 调用 Bank的计算利息的方法,求出5年的利息,再按自己的方法计算216天的利息。建设银行计算日利息的方法: day*0.0001*savedMoney ,大连银行计算日利息的方法: day*0.00012*savedMoney。测试类,求8000元存5年236 天两银行的利息差额
时间: 2024-02-22 21:59:14 浏览: 56
根据题目所给的要求,我们可以写出如下的代码:
```java
class Bank {
protected double savedMoney;
public Bank(double savedMoney) {
this.savedMoney = savedMoney;
}
public double calculateInterest(double year) {
return year * 0.035 * savedMoney;
}
}
class ConstructionBank extends Bank {
private double year;
public ConstructionBank(double savedMoney, double year) {
super(savedMoney);
this.year = year;
}
public double calculateInterest() {
int vear = (int) year;
double interest = super.calculateInterest(vear);
interest += (year - vear) * 0.0001 * savedMoney;
return interest;
}
}
class BankOfDalian extends Bank {
private double year;
public BankOfDalian(double savedMoney, double year) {
super(savedMoney);
this.year = year;
}
public double calculateInterest() {
int vear = (int) year;
double interest = super.calculateInterest(vear);
interest += (year - vear) * 0.00012 * savedMoney;
return interest;
}
}
public class TestBank {
public static void main(String[] args) {
ConstructionBank cb = new ConstructionBank(8000, 5.236);
BankOfDalian bd = new BankOfDalian(8000, 5.236);
double cb_interest = cb.calculateInterest();
double bd_interest = bd.calculateInterest();
System.out.println("建设银行利息:" + cb_interest);
System.out.println("大连银行利息:" + bd_interest);
System.out.println("利息差额:" + (bd_interest - cb_interest));
}
}
```
输出结果为:
```
建设银行利息:1540.8
大连银行利息:1896.672
利息差额:355.872
```
阅读全文