我在抽象類 - 抽象類中有一個很大的方法doComplicateCalculation。 還有擴展AbstractClass的小類Descendant。抽象超類中的後代類的Java調用方法
我要介紹的方法doComplicateCalculation小的變化,如:
..............
if (val<0){
continue;
}
..................
的問題也更加difficulta,在內部類抽象類的大方法。 如何做? 謝謝。
我在抽象類 - 抽象類中有一個很大的方法doComplicateCalculation。 還有擴展AbstractClass的小類Descendant。抽象超類中的後代類的Java調用方法
我要介紹的方法doComplicateCalculation小的變化,如:
..............
if (val<0){
continue;
}
..................
的問題也更加difficulta,在內部類抽象類的大方法。 如何做? 謝謝。
這可能不是最好的答案;但這是我提供的最佳答案。如果有的話,它會讓你思考如何解決這個問題(因爲如果你要編程一段時間,那麼它不會是你最後一次遇到這樣的問題)。
在你的抽象類,把這個:
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;
}
你需要分解大塊的方法,以便你可以覆蓋你需要的部分。
這是一個很難回答的問題。你可以做的一件事是儘可能地分解doComplicateCalculation中的算法。要添加驗證可能會使每個類擴展doComplicateCalculation實現一個公共布爾值 驗證
您甚至可以在整個算法之前或不同時間執行此操作。如果這是不可能的,你也可以重寫這個方法(或者如果你可以分解的話,可以重寫方法的一部分)。
打開抽象類並編輯它。 – Sap
我認爲你需要多說。你想添加到抽象類中的doComplicateCalculation?有什麼問題? –
LOL @Grrrrr。他/她很諷刺,但目前你的問題太模糊了。 –