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

本文关键字:两个 抽象类 派生 | 更新日期: 2023-09-27 18:04:08

我有应用程序结构-

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
{
}

我只能推出其中的任何一个,而不能同时推出两个。所以请指导我错过的东西或错误的编码我做了

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

c#不能多重继承。但是,您可以通过使用接口来实现这一点。

public interface Ia 
{
}
public interface Ib 
{
}
public abstract class MainProject : Ia, Ib  
{
}
c#接口只允许方法、属性、事件和索引器的签名。您必须在proj (MainProgram)类中定义这些功能的实现。
public abstract class proj : a, b

这是不可能的。c#不允许多重继承

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

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

public interface IFirstInterface
{
}
public interface ISecondInterface
{
}
public abstract class Proj : IFirstInterface, ISecondInterface
{
}

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