我在尝试完成某些 class 时遇到问题,我们将不胜感激!
我有3种类型的帐户,它们扩展了抽象类型“帐户”。[[CurrentAccount,StaffAccount和MortgageAccount]。
我试图从文件中读取一些数据,并创建帐户对象以及用户对象,以添加到程序中存储的哈希图中。
创建帐户对象时,我使用Account类型的临时变量并根据读入的数据定义其子类型。
例如:
Account temp=null;
if(data[i].equalsIgnoreCase("mortgage"){
temp= new MortgageAccount;
}
问题是当我尝试调用属于MortgageAccount类型的方法时。
我是否需要每种类型的Temp变量(StaffAccount MortgageAccount和CurrentAccount)并分别使用它们的核心才能使用其方法?
提前致谢!
最佳答案
这取决于。如果父类Account
具有在MortgageAccount
中覆盖的方法,则在调用该方法时,将获得MortgageAccount
版本。如果该方法仅存在于MortgageAccount
中,则需要强制转换该变量以调用该方法。