考虑以下代码:
abstract class AbstractClass
{
public abstract void AbstractMethodA();
public void ConcreteMethodA()
{
//Some operation
ConcreteMethodB();
}
}
public void ConcreteMethodB()
{
//Huge code unrelated to this class
AbstractMethodA();
}
}
class DerivedClass : AbstractClass
{
public void AbstractMethodA()
{
//Some operation
}
}
现在我想将ConcreteMethodB()移至单独的类,并从抽象类中的方法ConcreteMethodA()调用它。但由于ConcreteMethodB()使用了在DerivedClass中实现的抽象方法AbstractMethodA(),我无法从新类中访问该方法AbstractMethodA()。有什么解决办法吗?
ConcreteMethodB(IAbstractClass caller)
,并创建一个接口来实现AbstractClass
,以降低耦合度。 - David Arnopublic void ConcreteMethodB...
更改为public static void ConcreteMethodB
。当我检查我的答案(我从你的答案中复制/粘贴/编辑)是否编译时,我发现了这一点 :) - David Arno