package Money;
public abstract class Bank {
private double year;
private double rate = 0.035;
private double money;
public abstract double computerIncome();
public void setYear(double year) {
this.year = year;
}
public double getYear() {
return year;
}
public void setRate(double rate) {
this.rate = rate;
}
public double getRate() {
return rate;
}
public void setMoney(double money) {
this.money = money;
}
public double getMoney() {
return money;
}
}
package Money;
public class ABCBank extends Bank implements Commision {
private double rate;
public ABCBank(){
}
@Override
public double computerIncome() {//继承类函数重写
// TODO Auto-generated method stub
return super.getYear() * super.getRate() * super.getMoney();
}
@Override
public double rate() {//接口函数重写
if (super.getMoney() < 10000) {
rate = 0;
} else if (super.getMoney() > 10000 && super.getMoney() < 50000) {
rate =50;
} else {
rate = 100;
}
return rate;
}
}
package Money;
public class ICBCBank extends Bank implements Commision{
private double rate;
public ICBCBank(){
}
@Override
public double computerIncome() {
// TODO Auto-generated method stub
return super.getYear() * super.getRate() * super.getMoney();
}
@Override
public double rate() {
if (super.getMoney() < 10000) {
rate = 0;
} else if (super.getMoney() > 10000 && super.getMoney() < 50000) {
rate = 30;
} else {
rate = 50;
}
return rate;
}
}
package Money;
public interface Commision {//声明接口
abstract public double rate();
}
package Money;
public class ComputerIncome {//接口回调类
public double computerIncome(Commision Bank){
return Bank.rate();
}
}
package Money;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Bank bank_1 = new ABCBank();//建立上转型对象
Bank bank_2 = new ICBCBank();
Scanner in = new Scanner(System.in);
System.out.println("请输入存款金额:");
double money = in.nextDouble();
bank_1.setMoney(money);
bank_2.setMoney(money);
System.out.println("请输入存款时间:");
double year = in.nextDouble();
bank_1.setYear(year);
bank_2.setYear(year);
ComputerIncome rate =new ComputerIncome();
System.out.print(money+"元在农业银行存"+year+"年,本息合计共:");
System.out.println(bank_1.computerIncome()+rate.computerIncome((ABCBank)bank_1));
System.out.print(money+"元在工商银行存"+year+"年,本息合计共:");
System.out.println(bank_2.computerIncome()+rate.computerIncome((ICBCBank)bank_2));
}
}
运行结果: