我正在编写一个抽象基类。我希望从它继承的所有类继承一个构造函数,它基本上为所有类做同样的事情。这可能吗?
答案 0 :(得分:2)
保护你的构造函数会做的事情
public abstract class A
{
protected A(string v) { V = v; }
public string V { get; protected set; }
}
public class AA : A
{
public AA(string v) : base (v) {}
}
答案 1 :(得分:2)
如果抽象基类有一个默认构造函数(即没有参数的构造函数),它将由派生类构造函数自动调用,除非它们显式调用基类的另一个构造函数。
abstract class B
{
protected B()
{
...
}
protected B(object foo)
{
...
}
}
class D : B
{
public D()
: base() // not actually necessary, since it's called implicitly
{
}
public D(object foo)
: base(foo)
{
}
}
答案 2 :(得分:0)
在派生类构造函数中,您需要像这样调用基础构造函数:
base(param1,param2,...)
如果未显式调用基本构造函数,则将调用基类中的默认构造函数(如果存在)。如果没有,您将收到编译错误。