关于存钱的继承接口实现

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));
	}
}


运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值