继承类C#中的构造函数为空

  • 本文关键字:构造函数 继承 c# oop
  • 更新时间 :
  • 英文 :


我用C#编写了一个简单的泛型类。

class Foo<T>
{
   public object O{get;set;}
   public Foo(object o)
   {
      O=o;
   }
}

以及从中继承的另一个类

class Bar:Foo<object>
{
   public Foo(object o):base(o)
   { }
}

我的问题是,我是否可以避免在Bar类中编写该构造函数,因为它根本没有什么特别之处。PS:构造函数中的参数是必需的。

不,你不能。构造函数没有继承。Bar中的构造函数做了一些事情:它为基构造函数提供一个参数,并使用自己的参数作为该参数。没有办法自动做到这一点。

编译器将自动为您提供的仅构造函数等效于:

public Bar() : base()
{
}

对于具体类或抽象类:

protected Bar() : base()
{
}

只有当您没有显式地提供任何其他构造函数时,才会提供该构造函数。

最新更新