//创建基接口BankAccount,包含 存款方法playIn(),取款方法withdraw(),查询余额方法getBalance()。 interface BankAccount{ void playIn(double amount); boolean withDraw(double amount); double getBalance(); } //创建接口ITransferBankAccount(继承基接口BankAccount),包含转账方法transferTo(). interface ITransferBankAccount extends BankAccount{ boolean transferTo(BankAccount destunation,double amount); } /*创建类CurrentAccount(实现基接口ITransferBankAccount), 类中包含私有数据成员:名字name和余额balance, 并实现存款方法:playIn(),取款方法:withdraw(), 查询余额getBanlance(),银行转账方法transferTo(), 重载方法toString()方法,该方法返回银行当前账户中的余额。*/ class CurrentAccount implements ITransferBankAccount{ private String name; private double balance; public CurrentAccount(String name) { super(); this.name = name; } public void playIn(double amount){ this.balance+=amount; } public boolean withDraw(double amount){ if(this.balance>=amount){ this.balance-=amount; return true; } System.out.println("余额不足,取款失败"); return false; } public double getBalance(){ return balance; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean transferTo(BankAccount destination, double amount) {//银行转账 boolean result; if((result=withDraw(amount))==true) { destination.playIn(amount); } return result; } @Override public String toString() { return "CurrentAccount [name=" + name + ", balance=" + balance + "]"; } } public class TestBankDemo { //主函数中:拥有两个账户:分别为曹操和刘备, //(1):曹操存款1000,刘备存款2000。 //(2):刘备向曹操转账1元钱,返回两个账户当前的余额。 public static void main(String[] args) { CurrentAccount bankCount1=new CurrentAccount("曹操"); CurrentAccount bankCount2=new CurrentAccount("刘备"); bankCount1.playIn(1000); bankCount2.playIn(2000); bankCount2.transferTo(bankCount1,1); System.out.println(bankCount1.toString()); System.out.println(bankCount2.toString()); } }