<分区>
Possible Duplicates:
Constructors and Inheritance
Why are constructors not inherited?
当定义从基类继承的类时,我必须重新定义它的所有构造函数。 我想知道为什么 C# 不支持从基类的构造函数继承?
<分区>
Possible Duplicates:
Constructors and Inheritance
Why are constructors not inherited?
当定义从基类继承的类时,我必须重新定义它的所有构造函数。 我想知道为什么 C# 不支持从基类的构造函数继承?
最佳答案
构造函数不是继承的,因为我们无法正确确定我们的派生类对象是如何实例化的。当所有派生类都隐式使用父类的构造函数时,在我看来这将是一个问题,因为如果我们忘记重新定义构造函数,对象可能会被错误地初始化。如果您希望派生类构造函数与父类构造函数执行相同的操作,请使用 base 调用它。 .
另请注意,如果您不调用任何其他显式接受参数的基类构造函数,则基类构造函数(无参数)会自动运行。所以调用 base() 是多余的
。
关于C#不继承基类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4544382/