我用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()
{
}
只有当您没有显式地提供任何其他构造函数时,才会提供该构造函数。