第9章 派生类与继承.ppt

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

* 面向对象程序设计技术 (第九章 派生类与继承) * 第九章 派生类与继承 * 继承是面向对象程序设计的一个重要特性,它允许在既有类的基础上创建新的类,新类可以从一个或多个既有类中继承函数和数据,而且可以重新定义或加进新的数据和函数,从而形成类的层次或等级。既有的类称为基类或父类,在它基础上建立的新类称为派生类、导出类或子类。 * 第九章 派生类与继承 * ? 1、派生类的概念 5、退出 2、派生类的构造函数和析构函数 3、多重继承 4、虚基类(略) 1、派生类的概念 (1) 为什么要使用继承 继承性是一个非常自然的概念,现实世界中的许多事物是具有继承性的。人们一般用层次分类的方法来描述它们的关系。如下图所示: 汽车 运输汽车 专用汽车 消防车 汽车 汽车 洒水车 简单的汽车分类图 在这个分类树中建立了一个层次结构,最高层是最普遍、最一般的,每一层都比它的前一层更具体,低层含有高层的特性,同时也与高层有细微的不同,它们之间是基类和派生类的关系。 例如确定某一辆车是客车后,没有必要指出它是进行运输的,因为客车本身就是从运输汽车类派生出来的,它继承了这一特性,同样也不必指出它会自行驱动,因为凡是汽车都会自行驱动的。客车是从运输汽车类派生而来的,而运输汽车类又是从汽车类派生而来的,因此客车也可以继承汽车类的一般特性。 继承也是程序设计中的一个非常有用的、有力的特性,它可以让程序员在既有类的基础上,通过增加少量代码或修改少量代码的方法得到新的类,从而较好地解决了代码重用的问题。 下面我们通过例子进一步说明为什么要使用继承。 class person { private: char name[10]; int age; char sex; public: void print(); }; 假如现在要声明一个employee类,它包含有name(姓名),age(年龄),sex(性别)、department(部门)及salary(工资)等数据成员与成员函数print() . class employee { private: char name[10]; int age; char sex; char department[20]; float salary; public: void print(); }; 从以上两个类的声明中看出,这两个类中的数据成员和成员函数有许多相同的地方。只要在person类的基础上再增加成员department和salary,再对print()成员函数稍加修改就可定义出employee类。像现在这样定义两个类,代码重复太严重。为了提高代码的可重用性,就必须引入继承性,将employee类说明成person类的派生类,那些相同的成员在employee类中就不需要再定义了。 继承方式 public: 公有继承,基类的公有成员、保护成员在派生类中保持原有状态,基类的私有成员仍是私有的,派生类的成员函数可访问基类的公有和私有、保护成员,而派生类的对象只可访问基类的公有成员。 private: 私有继承,基类的公有成员和保护成员都作为派生类的私有成员,且不能被派生类的子类访问。 protected:基类的公有成员和保护成员都作为派生类的保护成员。 注意:派生类并不继承基类的构造函数。 (2) 派生类的声明 为了理解一个类如何继承另一个类,我们看一下employee类是如何继承person类的。 //定义一个基类(person类) class person { private: char name[10]; int age; char sex; public: void print(); }; //定义一个派生类(employee类) class employee : public person { char department[20]; float salary; public: //…… }; employee的冒号之后跟着关键字public与类名person,这就意味着类employee将继承person的全部特性。其中类person是基类, 类employee是派生类。关键字public指出派生的方式,告诉编译程序派生类employee从基类公有派生。 声明一个派生类的一般格式为: class 派生类名:派生方式 基类名 { //派生类新增的数据成员和成员函数 }; “派生方式”可

文档评论(0)

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

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

1亿VIP精品文档

相关文档