2011-09-22 116 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实现一个公共布尔值 验证

您甚至可以在整个算法之前或不同时间执行此操作。如果这是不可能的,你也可以重写这个方法(或者如果你可以分解的话,可以重写方法的一部分)。