我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019全年资料大全正版 > 泛型类 >

C中的泛型类继承问题

归档日期:05-17       文本归类:泛型类      文章编辑:爱尚语录

  为什么有两个一呢?为什么实例化派生类对象的时候还会调用继承类的构造函数呢? 这中间是个怎么样的过程啊?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  派生类的构造函数隐式调用基类的构造函数.在继承中,所有基类构造函数先于派生类构造函数获得调用,并按照这些类在类层次结构中出现的先后顺序调用

  派生类中的对象既包含从基类继承而来的域,也包含了局部定义的域。为了构造一个派生类的对象,我们必须对所有这些域加以正确的初始化。派生类的构造函数可以用来初始化变量,但基类必须知道如何正确初始化其域,保证约定不被破坏。因此,继承类的构造函数必须通过显式或者隐式地调用基类的构造函数,委托构造为被继承状态。

  构造函数不是方法,也不可继承。如果基类中定义了一系列构造函数,并且某个派生类又想拥有同样形式的构造函数,那么派生类就必须显式地对某个构造函数进行声明,即使这个构造函数所做的全部工作就是调用一下同样形式的基类构造函数。

  在为类创建对象时,将会对它所有的域分配内存,包括从基类继承来的域。这些域会被设置为相应类型的默认初始值。然后,就会调用构造函数。执行每个构造函数包括3个阶段:

  首先,执行显式或者隐式的基类构造函数调用。如果使用了显示的this构造函数调用,那么这种调用链将会一直执行到遇到某个显式或者隐式的基类构造函数调用为止,然后这个基类构造函数就会被调用。基类构造函数的执行也要经过相同的3个阶段——这将会被递归地加以应用,直到达到Object构造函数,因为此时再也找不到基类构造函数了。作为显式构造函数调用一部分的任何表达式都不允许引用当前对象的成员。

  接着,所有的域初始化语句块将会按照声明的顺序依次执行。此时,允许引用当前对象的其他成员,条件是它们已经被声明过。

  最后,构造函数体的实际语句将会被执行。如果构造函数是被显式调用的,那么结束时,控制权将会转移到调用它的那个构造函数手中,并接着执行它的其余部分。

  构造派生类的时候会先构造基类,基类都不存在哪来的派生类,这是子类类型可以向基类转化的基础

本文链接:http://buggystordera.com/fanxinglei/174.html