继承
继 承
主要内容 继承的概念 派生类的定义 派生类的生成过程 ■派生类的访问权限控制 派生类的构造和析构
◼ 继承的概念 ◼ 派生类的定义 ◼ 派生类的生成过程 ◼ 派生类的访问权限控制 ◼ 派生类的构造和析构 主要内容
士类的层次关系 交通工具 汽车 小汽车 卡车 旅行车 工具车轿车 面包车
类的层次关系
士类的继承和派生 ■保持已有类的特性而构造新类的过程称 为继承。 在已有类的基础上新增自己的特性而产 生新类的过程称为派生 被继承的已有类称为基类(或父类) 派生出的新类称为派生类。 ■继承的目的就是体现从特殊到一般
◼ 保持已有类的特性而构造新类的过程称 为继承。 ◼ 在已有类的基础上新增自己的特性而产 生新类的过程称为派生。 ◼ 被继承的已有类称为基类(或父类)。 ◼ 派生出的新类称为派生类。 ◼ 继承的目的就是体现从特殊到一般 类的继承和派生
生活中的继承和派生 动物 猴子猫 鸟 狮子 虎 猎豹
生活中的继承和派生
C++引入继承的目的 继承的目的:实现代码重用。 ■派生的目的:当新的问题出现,原有程 序无法解决(或不能完全解决)时,需 要对原有程序进行改造
◼ 继承的目的:实现代码重用。 ◼ 派生的目的:当新的问题出现,原有程 序无法解决(或不能完全解决)时,需 要对原有程序进行改造。 C++引入继承的目的
派生类生成示例 Person Person Student char name [201 char name 20] char name 20 int age Int age Int age int sex int sex int sex Person: Person Person: Person int id[9] GetName GetName float score GetAge GetAge Person: Person Getsex GetSex GetName Display Display GetAge GetSex Student Person: Display int id 9 Geld float score GetScore GetId Display GetScore Display
char name[20] int age int sex GetName GetAge GetSex Display Person::Person Person char name[20] int age int sex GetName GetAge GetSex Person::Display Person::Person int id[9] float score GetId GetScore Display Student char name[20] int age int sex GetName GetAge GetSex Display Person::Person Person int id[9] float score GetId GetScore Display Student 派生类生成示例
派生类的生成过程 分析派生新类的过程可知,派生类的生 成经历了三个步骤: 吸收基类成员; 改造基类成员; ■添加派生类新成员
◼ 分析派生新类的过程可知,派生类的生 成经历了三个步骤: ◼ 吸收基类成员; ◼ 改造基类成员; ◼ 添加派生类新成员。 派生类的生成过程
派生类的定义 class: 有三种:公有继承、私有继 承和保护继承,分别用关键字 publicy privater和 protected表示。缺省情况下为 私有继承
class : { }; ◼ 有三种:公有继承、私有继 承和保护继承,分别用关键字public、 private和protected表示。缺省情况下为 私有继承。 派生类的定义
访问权限控制 不同继承方式的影响主要体现在: 1、派生类成员对基类成员的访问控制。 2、派生类对象对基类成员的访问控制。 三种继承方式 n公有继承 私有继承 保护继承
◼ 不同继承方式的影响主要体现在: 1、派生类成员对基类成员的访问控制。 2、派生类对象对基类成员的访问控制。 ◼ 三种继承方式 ◼ 公有继承 ◼ 私有继承 ◼ 保护继承 访问权限控制