2017-07-13 180 views
2

标题解释了我相信的一切。在C#中,我现在意识到无论派生类中的构造函数是调用基类构造函数,无论它是显式调用还是隐式默认构造函数。我的问题是为什么?我认为这是因为派生类需要创建基类的对象,但为什么?为什么派生类需要使用基类构造函数

回答

9

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

派生类的实例是基类的一个实例。如果你对构建动物时发生的事情有规定,并且你正在构建长颈鹿,那么你必须执行构建动物的规则。在C#中,该机制是“调用基类构造函数”。

9

派生类是基类加上派生类添加的额外事物。

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

1

比方说,这辆车是你的抽象类,宝马,马自达,吉普车是你的驾驶类。 你有字段:名称,型号,.. 你有constroctor:汽车类汽车(),汽车(弦模型)

,那么当编译器做内存分配对象需要阅读抽象构造要注意的名称,型号。 这将调用默认的构造函数。但是您可以使用base(“z4”)强制在抽象类中调用重写的构造函数。

1

正如斯科特张伯伦所说的派生类是什么(加上一些更多的功能)。

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

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

你应该离开基地构造空的,要看您的具体需求

相关问题