
第16章继承
第16章 继承

目录16.1继承与派生16.2单继承多继承16.316.4派生类的构造函数与析构函数16.5二义性问题虚基类16.616.7赋值兼容原则
16.1 继承与派生 16.2 单继承 16.3 多继承 16.4 派生类的构造函数与析构函数 16.5 二义性问题 16.6 虚基类 16.7 赋值兼容原则

第16章继承继承是指新类从基类那里得到基类的特征,也就是继承基类的数据和函数该机制自动地为一个类提供来自另一个类的操作和数据结构。程序员只需定义已有类中没有的成分来建立新类。理解继承是理解面向对象程序设计所有方面的关键
• 继承是指新类从基类那里得到基类的特征, 也就是继承基类的数据和函数。 • 该机制自动地为一个类提供来自另一个类的 操作和数据结构。 • 程序员只需定义已有类中没有的成分来建立 新类。 • 理解继承是理解面向对象程序设计所有方面 的关键

第16章继承通过本章学习能利用继承现有的类建立新类能理解继承如何提高软件的重用性可以为一个派生类指定多个基类理解多继承的工作原理了解多继承要解决的问题认识虚拟继承的实质,把握多继承的方法能简单地从多个基类中派生出新类
通过本章学习 • 能利用继承现有的类建立新类, • 能理解继承如何提高软件的重用性。 • 可以为一个派生类指定多个基类 • 理解多继承的工作原理 • 了解多继承要解决的问题 • 认识虚拟继承的实质,把握多继承的方法 • 能简单地从多个基类中派生出新类

16.1继承的概念继承是面向对象程序设计支持代码重用的重要机制。通过继承,可以在原有类的基础上派生出新类。新类将共享原有类的属性,并且还可以添加新的特性,可以把继承过程看成是从一个类派生出一个新类的过程
• 继承是面向对象程序设计支持代码重用的重 要机制。 • 通过继承,可以在原有类的基础上派生出新 类。 • 新类将共享原有类的属性,并且还可以添加 新的特性。 • 可以把继承过程看成是从一个类派生出一个 新类的过程

16.1继承的概念从已有类产生新类的过程,称为派生派生出来的新类称为派生类或子类而被继承的类称作基类或父类一个基类可以派生出多个派生类一个派生类也可以由多个基类派生而来只从一个基类派生的过程称为单继承从多个基类派生的过程称为多继承
• 从已有类产生新类的过程,称为派生。 • 派生出来的新类称为派生类或子类; • 而被继承的类称作基类或父类。 • 一个基类可以派生出多个派生类。 • 一个派生类也可以由多个基类派生而来。 • 只从一个基类派生的过程称为单继承。 • 从多个基类派生的过程称为多继承

计算机类a)单继承台式机类便携式类输入设备类输出设备类b)多继承硬盘类
计算机类 台式机类 便携式类 输入设备类 输出设备类 硬盘类 a) 单继承 b) 多继承

基类/父类祖先类交通工具子类汽车小汽车旅行车卡车面包车轿车工具车图16-1继承的类层次
交通工具 汽车 小汽车 卡车 旅行车 工具车 轿车 面包车 图16-1 继承的类层次 基类/父类 子类 祖先类

16.1继承的概念继承用一种简单的方式来描述事物派生类继承了父类的属性和操作子类也声明了新的属性和新的操作当父类已经存在,在新的应用中不需要修改父类。可以在子类中做增加或修改继承可以帮助描述事物的层次关系,理解事物的本质
• 继承用一种简单的方式来描述事物。 • 派生类继承了父类的属性和操作。 • 子类也声明了新的属性和新的操作。 • 当父类已经存在,在新的应用中不需要修改 父类。 • 可以在子类中做增加或修改。 • 继承可以帮助描述事物的层次关系,理解事 物的本质

16.1继承的概念继承的优势:派生的新类可以增加或调整数据成员和成员函数,添加了基类所没有的特性(功能)。注:当从基类中派生出新类时,可以对派生类做如下几种变化:(1可以增加新的数据成员:可以增加新的成员函数:可以重新定义已有的成员函数:可以改变现有成员的属性(私有、公有、保护)
继承的优势: •派生的新类可以增加或调整数据成员和成员函 数,添加了基类所没有的特性(功能)。 注:当从基类中派生出新类时,可以对派生类做如 下几种变化: ✓① 可以增加新的数据成员; ✓② 可以增加新的成员函数; ✓③ 可以重新定义已有的成员函数; ✓④ 可以改变现有成员的属性(私有、公有、保护)