我在尝试完成某些 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中,则需要强制转换该变量以调用该方法。

07-24 21:28