//创建基接口BankAccount,包含 存款方法playIn(),取款方法withdraw(),查询余额方法getBalance()。
interfaceBankAccount{void playIn(doubleamount);boolean withDraw(doubleamount);doublegetBalance();
}//创建接口ITransferBankAccount(继承基接口BankAccount),包含转账方法transferTo().
interface ITransferBankAccount extendsBankAccount{boolean transferTo(BankAccount destunation,doubleamount);
}/*创建类CurrentAccount(实现基接口ITransferBankAccount),
类中包含私有数据成员:名字name和余额balance,
并实现存款方法:playIn(),取款方法:withdraw(),
查询余额getBanlance(),银行转账方法transferTo(),
重载方法toString()方法,该方法返回银行当前账户中的余额。*/
class CurrentAccount implementsITransferBankAccount{privateString name;private doublebalance;publicCurrentAccount(String name) {super();this.name =name;
}public void playIn(doubleamount){this.balance+=amount;
}public boolean withDraw(doubleamount){if(this.balance>=amount){this.balance-=amount;return true;
}
System.out.println("余额不足,取款失败");return false;
}public doublegetBalance(){returnbalance;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}public boolean transferTo(BankAccount destination, double amount) {//银行转账
booleanresult;if((result=withDraw(amount))==true) {
destination.playIn(amount);
}returnresult;
}
@OverridepublicString toString() {return "CurrentAccount [name=" + name + ", balance=" + balance + "]";
}
}public classTestBankDemo {//主函数中:拥有两个账户:分别为曹操和刘备,//(1):曹操存款1000,刘备存款2000。//(2):刘备向曹操转账1元钱,返回两个账户当前的余额。
public static voidmain(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());
}
}