Вы не можете. В отличие от C ++, C # не поддерживает несколько базовых классов.
Что вы можете сделать, это унаследовать абстрактный класс и реализовать интерфейс, извлеченный из базового класса - и вместо того, чтобы наследовать из базового класса, иметь поле его типа (короче, использовать композицию вместо наследования) :
public Class ABC : SomeAbstractClass, IBaseClass
{
private IBaseClass _base;
// initialize the IBaseClass in your constructor:
public ABC(int a, string b)
: base(a) // assume a constructor that takes an int on the abstract class
{
_base = new BaseClass(b); // assume a constructor that takes a string on the base class
}
// or a constructor for Dependency Injection:
public ABC(int a, IBaseClass baseClass)
: base(a)
{
_base = baseClass;
}
// implement the interface like this:
public int SomeIBaseClassMethod(string a, int b)
{
return _base.SomeBaseClassMethod(a, b);
}
public bool IsValid
{
get {return _base.IsValid;}
set {_base.IsValid = value}
}
}