如何从子类继承构造函数

时间:2012-03-16 13:45:29

标签: c#

我正在编写一个抽象基类。我希望从它继承的所有类继承一个构造函数,它基本上为所有类做同样的事情。这可能吗?

3 个答案:

答案 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,...)

如果未显式调用基本构造函数,则将调用基类中的默认构造函数(如果存在)。如果没有,您将收到编译错误。