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

Ale*_*ace 2 c# oop inheritance constructor

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

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

Sco*_*ain 9

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

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


Eri*_*ert 9

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

一个派生类的实例基类的一个实例.如果你有一个规则,当你构造一个动物时必须发生什么,并且你正在构建一个长颈鹿,那么你必须以某种方式执行构建动物的规则.在C#中,机制是"调用基类构造函数".