我有两个项目项目A和项目B.在项目B中有一个类TC,它是一个抽象类,在该类中有一个抽象方法CanSave()。 我在项目B中添加了项目A的参考。 在项目BI中,希望使用抽象方法CanSave作为项目A的重写。因此,一种方法是简单地将项目A的类添加为项目B的父类,然后将其用作覆盖方法。但问题在于已经是项目B的类继承的类。所以我不能使用它,因为不能使用多个基类。 什么是解决方案,以便我可以在项目B中使用抽象类
片段 项目A. 公共抽象类TC { protected abstract bool CanSave(object parameter); }
项目B. 公共类OP:CM(已经有一个基类) { //想在这里使用CanSave }
任何帮助将不胜感激。
答案 0 :(得分:1)
如果它是抽象方法(没有实现),我会建议声明接口。您可以从一个类继承,但可以从多个接口继承(无论您是否已从类继承)。
答案 1 :(得分:1)
将您的抽象类TC转换为和接口,然后您将能够在类OP中从它派生:
public interface ITC
{
bool CanSave(object parameter);
}
public class OP: CM, ITC
{
public bool CanSave(object parameter)
{
...
}
}
答案 2 :(得分:0)
将CanSave
方法逻辑提取到静态方法并在两个项目中使用它会更好。否则,您必须在TC
实例
OP
的实例
答案 3 :(得分:0)
你可以在Project B中创建另一个继承TC
的类(比方说TTC)public class TTC: TC
{
...
}
然后在OP类中创建一个TTC对象
public class OP:CM
{
private TTC ttcobject;
//you can inject it
public OP(TTC _ttc){
this.ttcobject = _ttc;
// or just initialize it here
// ttcobject = new TTC();
}
public bool CanSave(object parameter)
{
return ttc.CanSave(parameter;
}
}