C#不继承基类的构造函数

标签 c# .net inheritance constructor

<分区>

Possible Duplicates:
Constructors and Inheritance
Why are constructors not inherited?

当定义从基类继承的类时,我必须重新定义它的所有构造函数。 我想知道为什么 C# 不支持从基类的构造函数继承?

最佳答案

构造函数不是继承的,因为我们无法正确确定我们的派生类对象是如何实例化的。当所有派生类都隐式使用父类的构造函数时,在我看来这将是一个问题,因为如果我们忘记重新定义构造函数,对象可能会被错误地初始化。如果您希望派生类构造函数与父类构造函数执行相同的操作,请使用 base 调用它。 .

另请注意,如果您不调用任何其他显式接受参数的基类构造函数,则基类构造函数(无参数)会自动运行。所以调用 base() 是多余的

关于C#不继承基类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4544382/

相关文章:

c# - 如何在winform中制作默认的照片查看器或文本编辑器等

Javascript原型(prototype)继承

c# - 从动态创建的类中调用构造函数和方法

c# - 将 'using alias = class' 与泛型一起使用?

java - 尽管在 Java 中被声明为基类型,如何限制同一对象之间的操作

python - 在 Python 3 中调用 super() 之前覆盖父类属性

c# - 如何测试对象是否具有属性并设置它?

c# - 如何隐藏 power bi 报告的过滤器部分?

c# - 在 C# 中使用复杂元素的 Xml 反序列化

c# - 用于独立桌面应用程序 C# .net 的嵌入式数据库