你能在派生类中创建基类的构造函数吗?

时间:2014-04-23 17:02:11

标签: c# oop inheritance

我们可以在派生类中创建基类的构造函数吗?

public class A 
    {
     // some stuff
    }

    public class B:A
    {

     public A()
     { }

     public B() { }
    }

3 个答案:

答案 0 :(得分:4)

不,你不能这样做,这是不明智的。您可以使用base关键字在子类中调用基类构造函数。

public class B : A
{
    public B()
        : base() //base class default constructor call. 
    { }
}

答案 1 :(得分:1)

不,你不能这样做。类的构造函数必须属于它自己的类。

但您可以A

B中调用new A()的构造函数

答案 2 :(得分:0)

你可以这样做:

 public abstract class A
    {
        public A()
        {
            ExecuteConstructor();
        }

        protected abstract void ExecuteConstructor();
    }

    public class B : A
    {
        public B() { }

        protected override void ExecuteConstructor()
        {
            // implementation of your constructor to run in A 
        }
    }