本文共 1074 字,大约阅读时间需要 3 分钟。
1、 当基类中没有自己编写构造函数时,派生类默认的调用基类的默认构造函数
2、 当基类中编写构造函数时,派生类没有指定调用构造哪个构造函数时,会寻找无参的构造函数,如果没有则报错,另外无论调用派生类中的哪个构造函数都是寻找无参的那个基类构造函数,而非参数匹配。 3、 基类中编写了构造函数,则派生类中可以指定调用基类的某个构造函数,使用base关键字。派生类构造函数执行顺序
针对派生类,创建对象的基类部分过程中会隐式调用基类的某一个构造函数作为创建实例过程的一部分,在继承层次链中的每个类在创建对象过程中,执行自己的构造函数体之前都要执行它的基类构造函数。
也就是说,如果派生类的基类也是派生类,则每个派生类只需负责其直接基类的构造,不负责简介基类的构造,并且实例构造函数的顺序是从最上面的基类开始下溯的,静态构造函数是从下面的类开始上溯的(下面代码解释了这个问题)。
/* 等价的构造函数初始化语句 */ class DrivedClass : BaseClass {DrivedClass() //隐式使用基类构造函数BaseClass()的构造函数{ ...} } class DrivedClass : BaseClass{DrivedClass() : base() //显示使用基类构造函数BaseClass()的构造函数{ ...}}
如果想要派生类使用指定的基类构造函数然不是默认的无参数构造函数,可以使用“构造函数初始化语句”来进行指定。可以从以下两个形式:
使用关键字base并指明使用哪一个基类构造函数
作用:使用base()指明使用基类的哪一个构造函数;
用法:使用有关键字base的构造函数初始化语句和要调用的基类构造函数参数列表
转载地址:http://fdrxo.baihongyu.com/