我有一个名为bankaccount的类。我有一个 Bankaccount 对象数组 0-2 所以准确地说是 3 个。银行账户是一个超级类。我还有另外两个类 Checking 和 Savings 从 Bankaccount 扩展。我在支票和储蓄中有两个领域。一个是 ID,另一个是应该对应于该 ID 的帐户余额。我还有一个名为 assignment 1 的主要课程。这是我的问题。昨天有人告诉我,我可以通过检查数组来获取帐户的 ID,例如 arBankaccount[i].getId(); 这不起作用,因为检查和储蓄的 getter setter 方法位于检查和储蓄类而不是超类银行帐户中。我对如何解决这个问题感到困惑。我需要检查数组并找出哪个 ID 位于数组中的哪个引用处。
问问题
283 次
2 回答
2
伪代码,未经测试,在我脑海中浮现
class BankAccount{
private long id;
public long getId(){ //blah}
public void setId( long id) {// blah}
}
class Checking extends BankAccount {
}
class Savings extends BankAccount {
}
现在bankAccount[i].getId(0)
可以工作了。
于 2013-10-25T19:57:06.490 回答
0
如果您对 id 有不同的实现(或者可能在 的后一个子类中Checking
),您可以使用/方法创建一个接口并让/实现该接口:Savings
BankAccount
BankAccount
getId
setId
Checking
Savings
interface BankAccount
{
int getId();
void setId(int id);
}
class Checking implements BankAccount
{
int getId() { /* your implementation for Checking */ }
void setId(int id) { /* your implementation for Checking */ }
}
class Savings implements BankAccount
{
int getId() { /* your implementation for Savings */ }
void setId(int id) { /* your implementation for Savings */ }
}
注意:你不需要实现getId
/ setId
in BankAccount
(只是签名),因为它是一个接口:它只描述了它的实现者有什么方法。
优点是您可以提供自己的方法实现,而不管其他类的实现。
于 2013-10-25T20:37:27.700 回答