2011-09-22 114 views
0

我在抽象類 - 抽象類中有一個很大的方法doComplicateCalculation。 還有擴展AbstractClass的小類Descendant。抽象超類中的後代類的Java調用方法

我要介紹的方法doComplicateCalculation小的變化,如:

.............. 
if (val<0){ 
    continue; 
} 
.................. 

的問題也更加difficulta,在內部類抽象類的大方法。 如何做? 謝謝。

+2

打開抽象類並編輯它。 – Sap

+0

我認爲你需要多說。你想添加到抽象類中的doComplicateCalculation?有什麼問題? –

+0

LOL @Grrrrr。他/她很諷刺,但目前你的問題太模糊了。 –

回答

2

這可能不是最好的答案;但這是我提供的最佳答案。如果有的話,它會讓你思考如何解決這個問題(因爲如果你要編程一段時間,那麼它不會是你最後一次遇到這樣的問題)。

在你的抽象類,把這個:

if (doContinue(val)){ 
    continue; 
} 

然後,在你的抽象類定義的方法...

protected boolean doContinue(int val) { 
    // Or, put return true if you always want it to do this 
    return false; 
} 

然後,在你的具體類重寫此方法,這樣...

protected boolean doContinue(int val) { 
    return val < 0; 
} 
0

你需要分解大塊的方法,以便你可以覆蓋你需要的部分。

0

這是一個很難回答的問題。你可以做的一件事是儘可能地分解doComplicateCalculation中的算法。要添加驗證可能會使每個類擴展doComplicateCalculation實現一個公共布爾值 驗證

您甚至可以在整個算法之前或不同時間執行此操作。如果這是不可能的,你也可以重寫這個方法(或者如果你可以分解的話,可以重寫方法的一部分)。