为什么派生类需要使用基类构造函数

时间:2017-07-13 22:55:57

标签: c# oop inheritance constructor

标题解释了我所有的信念。

在C#中,我现在意识到,无论是派生类中的构造函数都将调用基类构造函数,无论它是显式调用还是隐式默认构造函数。我的问题是为什么?我认为这是因为派生类需要创建基类的对象,但为什么呢?

4 个答案:

答案 0 :(得分:9)

派生类是基类加上派生类添加的额外内容。

您仍然需要一些初始化基类部分的代码,以便您可以在顶部添加额外的部分。对基础构造函数的调用是初始化发生的地方。

答案 1 :(得分:9)

  

我认为这是因为派生类需要创建基类的对象,但为什么呢?

派生类的实例是基类的实例。如果你有一个规则来构建一个Animal时必须发生的事情,而你正在构建一个长颈鹿,那么以某种方式你必须执行构建一个Animal的规则。在C#中,机制是"调用基类构造函数"。

答案 2 :(得分:1)

让我们说这辆车是你的抽象级别,宝马,马自达,吉普车是你的驾驶课程。 你有字段:名称,型号,.. 你有constroctor:car(),car(string model)

在汽车类中,那么当编译器为对象做内存分配时需要读取抽象构造函数以了解Name,Model。 这将调用默认构造函数。但你可以使用base(" z4")强制在抽象类中调用重写的构造函数。

答案 3 :(得分:1)

正如斯科特张伯伦所说,衍生类是某种东西(加上一些更多的特征)。

当然,对象可以在构造函数中有行为。

无论如何,如果你不需要继承它们,你应该以正确的方式构建你的代码,

你应该把基础构造函数留空,取决于你的具体需求

相关问题