第8章继承与多态

第8章继承与多态

ID:38682748

大小:207.00 KB

页数:8页

时间:2019-06-17

第8章继承与多态_第1页
第8章继承与多态_第2页
第8章继承与多态_第3页
第8章继承与多态_第4页
第8章继承与多态_第5页
资源描述:

《第8章继承与多态》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章继承与多态继承:该机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构。体现了由简单到复杂的认识过程。多态性:多态性是考虑在不同层次的类中,以及在同一类中,同名的成员函数之间的关系问题。函数的重载,运算符的重载,属于编译时的多态性。以虚函数为基础的运行时的多态性是面向对象程序设计的标志性特征。体现了类推和比喻的思想方法。8.1继承与派生的概念层次概念是计算机的重要概念。通过继承的机制可对类分层,

2、提供类型/子类型的关系。C++通过类派生的机制来支持继承。被继承的类称为基类或超类,新的类为派生类或子类。基类和派生类的集合称作类继承层次结构。如果基类和派生类共享相同的公有接口,则派生类被称作基类的子类型。派生类的定义:class派生类名:访问限定符基类名1《,访问限定符基类名2,……,访问限定符基类名n》{《《private:》成员表1;》//派生类增加或替代的私有成员《public:成员表2;》//派生类增加或替代的公有成员《protected:成员表3;》//派生类增加或替代的保护成员};//分号不可少其中基

3、类1,基类2,……是已声明的类。多重继承:如果一个派生类可以同时有多个基类,称为多重继承,这时的派生类同时得到了多个已有类的特征。单继承:派生类只有一个直接基类的情况称为单继承。在派生过程中,派生出来的新类同样可以作为基类再继续派生出更新的类,依此类推形成一个层次结构。直接参与派生出某类称为直接基类,而基类的基类,以及更深层的基类称为间接基类。同时一个基类可以直接派生出多个派生类。这样形成了一个相互关联的类族。编制派生类时分4步进行:1.吸收基类的成员。不论是数据成员,还是函数成员,除构造函数与析构函数外全盘接收。2

4、.改造基类成员。声明一个和某基类成员同名的新成员,派生类中的新成员就屏蔽了基类同名成员称为同名覆盖。3.发展新成员。派生类新成员必须与基类成员不同名,它的加入保证派生类在功能上有所发展。4.重写构造函数与析构函数。注意:第二步中,新成员如是成员函数,参数表也必须一样,否则是重载。第三步中,独有的新成员才是继承与派生的核心特征。第四步是重写构造函数与析构函数,派生类不继承这两种函数。不管原来的函数是否可用一律重写可免出错。访问控制:亦称为继承方式,是对基类成员进一步的限制。访问控制也是三种:公有方式,亦称公有继承;保护

5、方式,亦称保护继承;私有方式,亦称私有继承。访问限定符两方面含义:派生类成员(新增成员)函数对基类(继承来的)成员的访问(调用和操作),和从派生类对象之外对派生类对象中的基类成员的访问。8.2公有派生和私有派生派生类构造函数的定义:派生类名::派生类名(参数总表):基类名1(参数名表1)《,基类名2(参数名表2),……,基类名n(参数名表n)》,《成员对象名1(成员对象参数名表1),……,成员对象名m(成员对象参数名表m)》{……//派生类新增成员的初始化;}//所列出的成员对象名全部为新增成员对象的名字注意:在构造

6、函数的声明中,冒号及冒号以后部分必须略去。所谓不能继承并不是不能利用,而是把基类的构造函数作为新的构造函数的一部分,或者讲调用基类的构造函数。基类名仅指直接基类,写了底层基类,编译器认为出错。冒号后的基类名,成员对象名的次序可以随意,这里的次序与调用次序无关。派生类构造函数各部分执行次序:1.调用基类构造函数,按它们在派生类定义的先后顺序,顺序调用。2.调用成员对象的构造函数,按它们在类定义中声明的先后顺序,顺序调用。3.派生类的构造函数体中的操作。注意:在派生类构造函数中,只要基类不是使用无参的默认构造函数都要显式

7、给出基类名和参数表。如果基类没有定义构造函数,则派生类也可以不定义,全部采用系统给定的默认构造函数。如果基类定义了带有形参表的构造函数时,派生类就应当定义构造函数。析构函数:析构函数的功能是作善后工作。只要在函数体内把派生类新增一般成员处理好就可以了,而对新增的成员对象和基类的善后工作,系统会自己调用成员对象和基类的析构函数来完成。析构函数各部分执行次序与构造函数相反,首先对派生类新增一般成员析构,然后对新增对象成员析构,最后对基类成员析构。注意:倡完善的类对象封装,不仅封装数据和对数据的操作,而且封装资源的动态分配

8、与释放,形成一个完备的子系统。在一个有层次结构的类体系中资源的动态分配与释放应封装在成员对象中8.3多重继承与派生类的成员标识由多个基类共同派生出新的派生类,这样的继承结构被称为多重继承或多继承。从一个基类派生出多个派生类,这样的继承结构被称为单继承。派生出来的新类同样可以作为基类再继续派生出更新的类,依此类推形成一个层次结构唯一标识问题,通常

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。