【发布时间】:2014-02-07 02:57:28
【问题描述】:
我正在为一个基本上模拟银行系统的课程做作业(我们在课堂上处理并发问题,因此我们需要为本学期剩余的时间做主干)。我遇到的问题是创建一个名为Transaction 的抽象类,它实现了与不同类型的事务相关的一堆不同方法的接口。然后我们必须为每种交易类型(即 AccountNumberInquiry、AccountBalanceInquiry、AccountWithdrawal 等)创建 Transaction 类的子类。
我的问题是我走在正确的轨道上还是我理解这一切都错了?
Transaction.java
public abstract class Transaction implements TransactionInterface {
private Account account;
public Transaction(Account account) {
this.account = account;
}
}
TransactionInterface.java
public interface TransactionInterface {
public int getAccountNumber();
public void makeTransfer();
public boolean makeWithdrawal();
public double getAccountBalance();
public void makeDeposit();
}
AccountTransfer.java(只是 Transaction 的一个示例子类)
public class AccountTransfer extends Transaction {
private Account account;
public AccountTransfer(Account account) {
super(account);
this.account = account;
}
public void makeTransfer(Account toAccount, double amount) {
AccountWithdrawal withdrawal = new AccountWithdrawal(account);
if(withdrawal.makeWithdrawl(amount) == true) {
// transfer to other account
} else {
// prompt error
}
}
}
我需要@Override 我的AccountTransfer 类中的接口方法对吗?有一大堆东西让我感到困惑。
【问题讨论】:
-
为什么需要两个
Account字段?在Transactionprotected中制作一个并在子类中重新使用它。 -
如果你有一个不是
abstract的类,它实现了一个接口或扩展了一个abstract类,它需要对所有继承的abstract方法(包括接口,隐式为abstract。 -
我想我只是在想这个问题。
标签: java inheritance abstraction