0

我有一个名为bankaccount的类。我有一个 Bankaccount 对象数组 0-2 所以准确地说是 3 个。银行账户是一个超级类。我还有另外两个类 Checking 和 Savings 从 Bankaccount 扩展。我在支票和储蓄中有两个领域。一个是 ID,另一个是应该对应于该 ID 的帐户余额。我还有一个名为 assignment 1 的主要课程。这是我的问题。昨天有人告诉我,我可以通过检查数组来获取帐户的 ID,例如 arBankaccount[i].getId(); 这不起作用,因为检查和储蓄的 getter setter 方法位于检查和储蓄类而不是超类银行帐户中。我对如何解决这个问题感到困惑。我需要检查数组并找出哪个 ID 位于数组中的哪个引用处。

4

2 回答 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),您可以使用/方法创建一个接口并让/实现该接口:SavingsBankAccountBankAccountgetIdsetIdCheckingSavings

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/ setIdin BankAccount(只是签名),因为它是一个接口:它只描述了它的实现者有什么方法。

优点是您可以提供自己的方法实现,而不管其他类的实现。

于 2013-10-25T20:37:27.700 回答