第七章继承与多态性.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章继承与多态性.ppt

第七章 继承与多态性 第七章 继承与多态性 7.1 继承 7.2 多态性 7.3 运算符重载 7.1 继承 7.1.1 继承的概念 7.1.2 派生类的定义 7.1.3 成员标识问题 7.1.4 赋值兼容规则 7.1.5 继承实例 7.1.1 继承的概念 1. 什么是继承 2. 继承的一般意义 3. 事物的继承性实例 4. 继承对软件开发的意义 5. 继承性的实现方法 6. 继承性的一些术语 1. 什么是继承 继承 (inheritance) 是面向对象方法中的一个重要概念,也是 C++的一种重要机制。顾名思义,继承就是得到父辈的遗产,在此基础上发展自己的事业,可以事半功倍。面向对象思想强调软件的可重用性,继承就是实现可重用性的一种重要途径。在软件开发中,我们不需要一切都从头做起。继承前人开发的软件资源,在此基础上加入自己的特性化部分,不仅可以大大缩短开发周期,而且可使软件资源得以充分的利用。 2. 继承的一般意义 人类认识事物往往有一个从特殊到一般,再从一般到特殊的过程:首先将具体事物的共性抽象出来构成一些大小不同的类,这些类依照从大到小的顺序,按层次排列成一棵倒挂的树,大类中仅包含小类的共同属性,小类在继承大类共同属性的基础上,又定义了自己的特有属性…,这样逐层分解下去,就构成了一个谱系图,我们称之为“类族”。最后,每个具体事物,就是这个类族中某最小类的一个对象。 3. 事物的继承性实例 4. 继承对软件开发的意义 随着计算机硬件技术的发展,软件在市场需求、产品数量、单软件代码量、质量要求和更版速度上,都在不断地增长和提高。一个商品化软件的开发和维护需要投入大量的人力物力,可重用性和可维护性自然成为评价软件的一项重要指标。通过面向对象的继承性,一个软件的开发可以象盖楼房一样,通过抽象,首先构造出具通用性和可重用性的“基类”,再在其上分层次建造出功能更强、数量更多的类来。 5. 继承性的实现方法 作为一种面向对象语言,C++为继承性的实现提供了强有力的手段。在C++程序设计当中,我们可采用层次式的体系结构,通过对基类成员的吸收、改造和加入新成员,使派生出的类表现出更多的特性和更强的功能。然而,继承性的实现并不仅仅表现在语言形式和实现机制上,对于软件开发者来说,更重要的是掌握事物的抽象方法,这样才能根据具体问题设计出一个好的类族、以此为基础开发出一个好的软件来。 6. 继承性的一些术语 一个被它类继承的类称为它类的“基类”或“父类”,一个继承了基类的类称为基类的“派生类”或“子类”。显然,基类和派生类都是一个相对的概念,一个基类可以从其它类派生出来,一个派生类也可以继续派生出其它的类。当一个类是从一个类派生出来时,我们称为“单继承”,否则称为“多继承”。一个基类可以派生出多个类,但不属于多继承范围。 本课程仅讨论单继承情况。 7.1.2 派生类的定义 1. 派生类定义的语法 2. 受保护成员和成员的继承 3. 继承权限 4. 派生类的构造函数 5. 基类和内嵌对象构造函数的调用 6. 派生类的析构函数及调用顺序 7. 派生类定义实例 1. 派生类定义的语法 定义一个派生类的语法是: class 派生类名: 继承权限 基类名 { private: 私有数据成员声明、私有成员函数原型或内联定义 public: 公有数据成员声明、公有成员函数原型或内联定义 protected: 受保护数据成员声明、公有成员函数原型或内联定义 }; 2. 受保护成员和成员的继承 类成员的访问权限除了可以是public或private 之外,还可以是 protected (受保护的)。“受保护”表示具有这种属性的成员只能被本类及其派生类的成员函数所访问或调用。 派生类继承了基类的所有数据成员和成员函数,即派生类成员是由基类的成员和自身的成员所组成,派生类对象所占用的内存空间也就是基类与派生类所占用内存空间之和。然而,派生类只对基类的公有成员和受保护成员有着访问的权利。 3. 继承权限 派生类定义中的 “继承权限” 可以是 public、private、protected 之一,其意义分别为: public: 基类中的公有成员和受保护成员在派生类中仍分别是公有成员和受保护成员。 private: 基类中的公有成员和受保护成员在派生类中都变为私有成员。 protected:基类中的公有成员和受保护成员在派生类中都变为受保护成员。 基类的私有成员,无论是在派生类中、其它类中还是类外,都永远是私有成员。 4. 派生类的构造函数 创建派生类的一个对象时,在调用派生类的构造函数之前,系统首先要调用其基类的构造函数,为基类的数据成员分配内存空间。如果要对基类和派生类的任何数据成员初始化,就必须在派生类中定义带形参的构造函数,并把形参作为实参传

文档评论(0)

sunguohong + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档