目录
一、概述
封装:现实世界中的联系
将数据与数据的处理函数结合在一起,隐藏数据,数据的访问只能通过类的共有函数。
继承:持续发展的开放的编程态度
新的类在不破坏类的封装的特性的情况下得到了原有类的功能,并依据新的需求添加新的数据和成员。
多态:对程序通用性的追求
同一名称实现不同的功能,达到行为标识统一。
二、基本概念
- 继承:保持已有类的特性,而构造新类的过程称为继承。
- 派生:在已有类的基础上新增自己的特性,而产生新类的过程称为派生。
- 被继承的类称为基类或父类
- 派生出的新类称为派生类或子类
- 类与类的继承关系:单继承、多继承、多重继承(如下图)
三、继承方式
注意:无论派生类以何种方式继承基类,都不能直接访问基类的私有(private)数据成员!
不同的继承方式下,基类成员的访问属性变化:
四、派生类的定义
class 派生类名:继承方式1 基类名1, 继承方式2 基类名2 ,..., 继承方式n 基类名n
{
......
}
注意:
- “基类名” 必须是已经存在的类名
- 派生类在继承时可以是单继承,也可以是多继承
- 在派生类定义时,对每一个基类都要独立指明 “继承方式”
- 如果没有显示给出继承方式,系统默认的继承方式为:私有继承(private)
五、派生的步骤
1.继承基类成员:
- 基类的全部数据成员
- 除了构造函数和析构函数以外的所有函数成员
2.派生类添加新成员:
- 新成员体现了派生类与基类的差异,是派生类存在的基础
3.“旧成员改造”:
- 添加新成员时,使用和被继承基类成员相同的名字
- 派生类的新成员会屏蔽基类同名数据成员
- 在使用派生类对象时,默认访问同名的新成员
4.写派生类的构造函数和析构函数: