我有一个名为bankaccount的类。我有一个Bankaccount对象数组0-2所以确切地说是3。 Bankaccount是一个超级类。我还有另外两个从Bankaccount延伸的类检查和保存。我在检查和储蓄方面有两个领域。一个是ID,另一个是该帐户的余额,应该与该ID相对应。我还有一个叫做作业1的主类。继承我的问题。昨天我被告知我可以通过检查数组来获取帐户的ID,如arBankaccount [i] .getId();这不起作用,因为检查和节省的getter setter方法位于检查和储蓄类中,而不是超类bankaccount。我很困惑如何解决这个问题。我需要检查数组并找出哪个ID位于数组中的哪个引用。遗产对我来说是新的,如果这个问题非常愚蠢,那就很抱歉。
答案 0 :(得分:2)
Psuedo代码,未经测试且不受我的影响
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)
可以使用。
答案 1 :(得分:0)
如果您在Checking
和Savings
中为ID(或者在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
/ BankAccount
的实现(只是签名),因为它是一个接口:它只描述它的实施者有哪些方法。
优点是无论其他类的实现如何,您都可以提供自己的方法实现。