如何在C#中派生两个抽象类

时间:2013-03-15 12:25:42

标签: c# .net c#-4.0 interface

我有app结构 -

public abstract class a 
{
}
//defined in a.dll
public abstract class b
{
}
//defined in b.dll

//Above 2 DLL reference added in main project where I want to derive both of this abstract classee like

public abstract class proj : a, b
{
}

我能够推导出任何一个而不是两者兼而有之。所以请指导我做错过的事情或错误的编码。

4 个答案:

答案 0 :(得分:8)

您无法使用C#

进行多重继承

您可以使用界面来实现此目的。

public interface Ia {

}

public interface Ib {

}

public abstract class proj : Ia, Ib  {

}

接口仅允许方法,属性,事件和索引器的签名。您必须在proj类中定义这些实现。

http://msdn.microsoft.com/en-gb/library/87d83y5b(v=vs.110).aspx

答案 1 :(得分:2)

public abstract class proj : a, b

这不可能。 C#不允许多重继承。

答案 2 :(得分:1)

您无法同时从两个类派生。您应该使用接口。

public interface IFirstInterface
{
}
public interface ISecondInterface
{
}

public abstract class Proj : IFirstInterface, ISecondInterface
{
}

现在继承自Proj的类仍需要实现两个接口中定义的所有方法和属性。

答案 3 :(得分:0)

不是从多个抽象类派生(在C#中是非法的),而是从两个接口派生(根据定义是抽象的)。