如何从c#中的多个类继承呢?

时间:2014-05-25 06:40:56

标签: c# inheritance

我有2个课程base1base2

   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?但是这两个类构造函数都有参数!所以不可能创建一个接口 可能你有更好的想法...

3 个答案:

答案 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
    }
}

我希望这会对你有所帮助