西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第7章 继承与派生

第⑦章继承与派生 H 第7章继承与派生 7,1继承与派生 7,2多继承 73类的继承方式 74派生类的构造和析构函数 75派生中成员的标识与访问 7.6虚基类 BACK
第7章 继承与派生 第7章 继承与派生 7.1 继承与派生 7.2 多继承 7.3 类的继承方式 7.4 派生类的构造和析构函数 7.5 派生中成员的标识与访问 7.6 虚基类

第⑦章继承与派生 H 71继承与派生 71.1继承与派生的概念 在面向对象的程序设计中,大量使用继承和派生。 例如,我们要定义不同的窗口,因为窗口都具有共同 的特征,如窗口标题,窗口边框及窗口最大、最小等 我们不需要也没有必要将每一个窗口定义一遍。这时 我们可以先定义一个窗口类(系统的类库中已存在), 然后以这个窗口类作为基类派生出其它不同的窗口类
第7章 继承与派生 7.1 继承与派生 7.1.1 继承与派生的概念 在面向对象的程序设计中,大量使用继承和派生。 例如,我们要定义不同的窗口,因为窗口都具有共同 的特征,如窗口标题,窗口边框及窗口最大、最小等, 我们不需要也没有必要将每一个窗口定义一遍。这时 我们可以先定义一个窗口类(系统的类库中已存在), 然后以这个窗口类作为基类派生出其它不同的窗口类

第⑦章继承与派生 H 所谓继承,就是新的类从已有类那里得到已有的 特性。从另一个角度来看,从已有类产生新类的过程 就是类的派生。已有的类称为基类或父类,产生的新 类称为派生类或子类。派生类同样也可以作为基类再 派生新的类,这样就形成了类的层次结构
第7章 继承与派生 所谓继承,就是新的类从已有类那里得到已有的 特性。从另一个角度来看,从已有类产生新类的过程 就是类的派生。已有的类称为基类或父类,产生的新 类称为派生类或子类。派生类同样也可以作为基类再 派生新的类,这样就形成了类的层次结构

第⑦章继承与派生 H 类的继承和派生的层次结构,可以说是人们对自 然界中的事物进行分类、分析和认识的过程在程序设 计中的体现。现实世界中的事物都是相互联系、相互 作用的,人们在认识过程中,根据事物的实际特征, 抓住其共同特性和细小差别,利用分类的方法进行分 析和描述。例如,对于交通工具的分类见图7-1
第7章 继承与派生 类的继承和派生的层次结构,可以说是人们对自 然界中的事物进行分类、分析和认识的过程在程序设 计中的体现。现实世界中的事物都是相互联系、相互 作用的,人们在认识过程中,根据事物的实际特征, 抓住其共同特性和细小差别,利用分类的方法进行分 析和描述。例如,对于交通工具的分类见图7-1

第⑦章继承与派生 H 交通工具 火车 汽车 飞机 轮船 卡车 小汽车 旅游车 图7-1交通工具分类层次图
第7章 继承与派生 图7-1 交通工具分类层次图

第⑦章继承与派生 H 这个分类树反映了交通工具的派生关系。最高层 是抽象程度最高的交通工具,是最具有普遍和一般意 义的概念。下层(火车、汽车、飞机和轮船)具有了 上层交通工具的特性,同时加入了自己的新特征。而 最下层是最为具体的,例如汽车又可分为卡车、小汽 车和旅游车。在这个层次结构中,由上到下,是一个 具体化、特殊化的过程;由下到上,是一个抽象化的 过程。上下层之间的关系就可以看作是基类与派生类 的关系
第7章 继承与派生 这个分类树反映了交通工具的派生关系。最高层 是抽象程度最高的交通工具,是最具有普遍和一般意 义的概念。下层(火车、汽车、飞机和轮船)具有了 上层交通工具的特性,同时加入了自己的新特征。而 最下层是最为具体的,例如汽车又可分为卡车、小汽 车和旅游车。在这个层次结构中,由上到下,是一个 具体化、特殊化的过程;由下到上,是一个抽象化的 过程。上下层之间的关系就可以看作是基类与派生类 的关系

第⑦章继承与派生 H 类的派生实际是一种演化、发展过程,即通过扩 展、更改和特殊化,从一个已知类出发建立一个新类 通过类的派生可以建立具有共同关键特征的对象家族, 从而实现代码的重用。这种继承和派生的机制对于已 有程序的发展和改进是极为有利的
第7章 继承与派生 类的派生实际是一种演化、发展过程,即通过扩 展、更改和特殊化,从一个已知类出发建立一个新类。 通过类的派生可以建立具有共同关键特征的对象家族, 从而实现代码的重用。这种继承和派生的机制对于已 有程序的发展和改进是极为有利的

第⑦章继承与派生 H 71.2派生类的声明 在C+中,派生类的一般声明语法如下 class[继承方式]基类名> 派生类成员声明; 其中: ①clas是类声明的关键字,用于告诉编译器下面声 明的是一个类。 ②派生类名是新生成的类名
第7章 继承与派生 7.1. 2 派生类的声明 在C++中,派生类的一般声明语法如下: class:[继承方式] { 派生类成员声明; }; 其中: ①class是类声明的关键字,用于告诉编译器下面声 明的是一个类。 ②派生类名是新生成的类名

第⑦章继承与派生 H ③继承方式规定了如何访问从基类继承的成员 继承方式关键字为 private、 public和 protected,分别表 示私有继承、公有继承和保护继承。如果不显式地给 出继承方式关键字,系统的默认值就认为是私有继承 ( private)。类的继承方式指定了派生类成员以及类外 对象对于从基类继承来的成员的访问权限,这将在73 节中详细介绍
第7章 继承与派生 ③继承方式规定了如何访问从基类继承的成员。 继承方式关键字为private、public和protected,分别表 示私有继承、公有继承和保护继承。如果不显式地给 出继承方式关键字,系统的默认值就认为是私有继承 (private)。类的继承方式指定了派生类成员以及类外 对象对于从基类继承来的成员的访问权限,这将在7.3 节中详细介绍

第⑦章继承与派生 H ④派生类成员指除了从基类继承来的所有成员之 外,新增加的数据和函数成员。这些新增的成员正是 派生类不同于基类的关键所在,是派生类对基类的发 展。当重用和扩充已有的代码时,就是通过在派生类 中新增成员来添加新的属性和功能。可以说,这就是 类在继承基础上的进化和发展
第7章 继承与派生 ④派生类成员指除了从基类继承来的所有成员之 外,新增加的数据和函数成员。这些新增的成员正是 派生类不同于基类的关键所在,是派生类对基类的发 展。当重用和扩充已有的代码时,就是通过在派生类 中新增成员来添加新的属性和功能。可以说,这就是 类在继承基础上的进化和发展
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第6章 指针与字符串.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第5章 程序结构.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第4章 类和对象.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第3章 数组.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第2章 函数.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第1章 C++简单程序设计.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第11章 Visual C++环境下Windows.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第10章 异常处理.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)目录 The C++ programming language(主讲:揣锦华).ppt
- 《软件形式化方法》期末考试模拟试题一.doc
- 《高质量C++编程指南》PDF电子资料(2001,v1.0,共十一章,林锐).pdf
- 《数据库自测试题》模拟试题一(附答案).doc
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》谐振电路.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》分析习题.doc
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》第11章 直流电源.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》复习.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》习题.doc
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》第8章 集成运算放大器.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》第7章 负反馈放大电路.ppt
- 海南大学:《计算机电子电路技术—电路与模拟电子部分》第6章 放大电路分析基础(1/3).ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第8章 多态性.ppt
- 西安电子科技大学:《C++程序设计语言》课程电子教案(PPT教学课件)第9章 流类库与输入输出.ppt
- 深圳职业技术学院:《C语言程序设计》第一单元 C 语言的数据类型、运算符和表达式(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十单元 链表(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十一单元(1):文本文件的操作(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十一单元(2):二进制文件的操作(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第十一单元(3):文件的定位操作和随即读写(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第二单元:顺序结构程序设计(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第三单元:选择结构程序设计(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第四单元:循环结构程序设计(1)(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第四单元(2):循环结构编程实训(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(1):数组的基础内容(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(2):数组的应用(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(3):数组的编程实训(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(4):二维数值型数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(5):字符型数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(6):字符数组的编程实训(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元(7):二维字符数组(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第 5 单元(8):数组编程总结(乌云高娃).pdf
- 深圳职业技术学院:《C语言程序设计》第五单元:数组(乌云高娃).pdf