一.继承与派生的概念
1.继承是在一个或多个已存在的类的基础上建立一个新的类。
1)已存在的类称为“基类”、“父类”或“一般类”。
2)新建立的类称为“派生类”、“子类”或“特殊类”。
2.从新类角度说,新类从已有的类那里获得其已有特性,这种现象称为类的继承。通过继承,一个新建子类从已有的父类那里获得父类的特性。
从父类角度说,从已有的父类产生一个新的子类,称为类的派生。
二.基类和派生类
1.派生类继承了基类的所有数据成员和成员函数(不包括基类的构造函数和析构函数),并可以增加自己的新成员,同时也可以调整来自基类的数据成员和成员函数。
2.二者的关系
3.类继承的语法
class 派生类名 : 基类名表
{
数据成员和成员函数声明
};
基类名表 构成
访问控制 基类名1, 访问控制 基类名2 ,… , 访问控制 基类名n
访问控制 表示派生类对基类的继承方式,使用关键字:
public 公有继承
private 私有继承
protected 保护继承
4.派生类中的成员包括:
从基类继承过来的成员 和 自己新增加的成员 两大部分
例
三.访问控制
1.派生类对基类成员的使用,与声明派生类时所指定的对基类的继承方式 和 基类中成员的访问属性有关
1)不论以哪种方式继承基类,派生类都不能直接使用基类的私有成员
(保护成员的意思是:不能被外界访问,但可以被派生类的成员访问。)
2)
四.派生类的生成
1.吸收基类成员
在C++的继承机制中,派生类吸收基类中除构造函数和析构函数之外的全部成员。
2.改造基类成员
包括两个方面
- 通过派生的三种继承方式来控制;
比如:通过私有继承或保护继承, 改变基类成员的访问权限 - 通过在派生类中定义同名成员(包括成员函数和数据
成员)来屏蔽在派生类中不起作用的部分基类成员。
注意,屏蔽不是删除,也就是派生类中继承自基类的成员变量依然存在,而且值也不发生变化。
3.添加新成员
●添加派生类的新成员是继承机制的核心内容。
●仅仅继承基类的成员是不够的,需要在派生类中添加新成员,以保证派生类自身特殊属性和行为的实现。