2017-07-31 48 views
0

比方說,我有2班在我的模型:JDBC DAO和繼承

public class Account { 
    int capital; 
    int numero 
    } 

public class SavingAccount extends Account{ 
    double rate; 
} 

所以當我有保存或使用JDBC的數據庫中檢索的帳戶,它的工作原理,但在結合它是OK資本和NUMERO但速度我需要檢查的類型和投它:

if(account.getType() == AccountType.SAVINGACCOUNT) { 
((SavingAccount)Account).setRate(result.getDouble("rate")); 
} 

是否有可能不這樣做比或比有2種不同的方法?

回答

0

最後一個和剛纔實施的類是SavingAccount。 SavingAcccount包含rate's getter and setter方法。因此,無論何時使用getRate(),您應該將您的賬戶類型轉換爲SavingAccount,因爲在SavingAccount的堆空間中您有getRate()方法。

因爲最終的實現是通過SavingAccount,您還通過TypeChecking AccountType.SAVINGACCOUNT提供正確的數據庫事務。

當您通過Account實例執行操作時,它會爲您提供多態功能。這就是爲什麼這很重要。

因此,在您的情況下,我看不到任何其他解決方案存在。你做得很好。