我有2个课程base1
和base2
public class base1
{
public base1(int I, string s)
{
}
public void f1()
{
// code
}
public void f2()
{
// code
}
public void p()
{
// code
}
}
public class base2
{
public base2(int x)
{
}
public void f3()
{
// code
}
public void f4()
{
// code
}
protected void f5()
{
// code
}
}
我需要实现5个派生自这两个类的类
但是c#
中没有多重继承....所以我怎么能这样做? - 一个班base1
我不能改变。第二个我可以过期。所以我唯一的想法就是让它成为interface
?但是这两个类构造函数都有参数!所以不可能创建一个接口
可能你有更好的想法...
答案 0 :(得分:1)
Multiple inheritance
被排除在C#之外。是的,Interfaces
确实是推荐的方式。除非你可以使用Composition
。这实际上取决于类应该建模的行为和知识!
答案 1 :(得分:0)
如你所说,没有更好的主意,在C#中你只能从一个类继承。
您应该从类中提取接口并从这些接口继承。
答案 2 :(得分:0)
我建议将功能提取到接口,然后,在构造函数中处理参数,在名为Load的接口内部创建一个新方法,接受构造函数现在采用的参数。
public Interface IBase1
{
public void Load(int param1, string param2);
public void f1();
public void f2();
//The rest of methods...
}
和第二个一样!
然后你的类将从这个接口继承,并将填充Load方法。
public class MyClass : IBase1
{
public void Load(int param1, string param2)
{
// Implementation
}
}
我希望这会对你有所帮助