《面向对象程序设计》课程教学资源(PPT课件)第11章 继承和派生

第11章继承和派生11.1有关继承的基本概念派生类11.211.3派生类的继承方式和访问属性派生类的构造函数和析构函数11.4
0 第11章 继承和派生 11.1 有关继承的基本概念 11.2 派生类 11.3 派生类的继承方式和访问属性 11.4 派生类的构造函数和析构函数

11.1有关继承的基本概念classStudent继承的作用:软件重复使用(private:classPersonchar Name[20], Sex; int Age;(private :int Number;char ClassName[10];char Name[20] , Sex; int Age;public:public:void Register(char*name,intage, charvoid Register(char*name,int agesex,intnumber,char*classnamechar sex)strcpy(Name, name)strcpy(Name, name);Age= age;Age= age;Sex = (sex =-'m'?'m': '"f');Sex= (sex =='m'?'m':'f');Number=number;strcpy(ClassName,classname):13;
1 11.1 有关继承的基本概念 一、继承的作用:软件重复使用 class Person {private: char Name[20] , Sex; int Age; public: void Register(char *name, int age, char sex) { strcpy(Name, name); Age = age; Sex = (sex == 'm'? 'm': 'f ' ); } }; class Student { private: char Name[20] , Sex; int Age; int Number; char ClassName[10]; public: void Register(char *name, int age, char sex, int number, char *classname) { strcpy(Name, name); Age = age; Sex = (sex == 'm'? 'm': 'f ' ); Number=number; strcpy(ClassName, classname); } };

11.1有关继承的基本概念概念1.从已有的类(基类)产生新类的过程称为派生,这个新类又称为派生类。2.类的继承(inheritance)是指新类从基类那里得到基类的特征也就是继承基类的数据和函数
2 11.1 有关继承的基本概念 二、概念 1. 从 已有的类(基类)产生新类的过程称为派生,这个新类又称为派 生类。 2. 类的继承(inheritance)是指新类从基类那里得到基类的特征, 也就是继承基类的数据和函数

基类与派生类示意图学生小学生中学生大学生研究生初中生专科生本科生博士生高中生硕士生3
基类与派生类示意图 学生 小学生 中学生 大学生 研究生 初 中 生 高 中 生 专 科 生 本 科 生 硕 士 生 博 士 生 3

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

11.2派生类派生类的声明格式class派生类名:继承方式基类名1,...,继承方式基类名nprivate:成员表1;I派生类增加或替代的私有成员public:成员表2;I派生类增加或替代的公有成员protected:成员表3I派生类增加或替代的保护成员1 :注:1.继承方式--private,protected,public2.若无关键字(继承方式),则默认为私有继承(private)
5 11.2 派生类 一、派生类的声明格式 class 派生类名:继承方式基类名1,. ,继承方式 基类名n { private: 成员表1; //派生类增加或替代的私有成员 public: 成员表2; //派生类增加或替代的公有成员 protected: 成员表3; //派生类增加或替代的保护成员 }; 注:1. 继承方式- private ,protected, public 2.若无关键字(继承方式),则默认为私有继承(private)

例子class Student:publicPerson[ private :intNumber;char ClassName[10];public:void Register(int number,char *classname, char *name, int age, charsex)Number=number;strcpy(ClassName,classname);voidShowStu(cout<<Number<<"lt'<<ClassName<<endlShowMe();)
例子 6 class Student : public Person { private: int Number; char ClassName[10]; public: void Register( int number, char *classname , char *name, int age, char sex ) { Number=number; strcpy(ClassName, classname); . } void ShowStu() { cout<<Number<<‘\t’<<ClassName<<endl; ShowMe(); } };

单继承与多继承单继承:一个派生类只有一个基类多继承:一个派生类同时有多个基类2classPlaneI飞机classRocketll火箭[charWing;l/机翼[charRocketEngine;l火箭发动机charUndercarriage;l/起落架public:public:voidLaunch():l发射方法voidLand()://着陆方法3;);classSpaceShuttle:publicPlane,publicRocketl/航天飞机(;
二、单继承与多继承 • 1、单继承:一个派生类只有一个基类 • 2、多继承:一个派生类同时有多个基类 7 class Plane //飞机 {char Wing; //机翼 char Undercarriage; //起落架 public: void Land(): //着陆方法 }; class Rocket //火箭 {char RocketEngine; //火箭发动机 public: void Launch(): //发射方法 }; class SpaceShuttle: public Plane, public Rocket //航天飞机 { };

三、派生类的构成1、从基类接收的成员注:除构造函数和析构函数外,必须接收所有的数据成员和成员函数派生类对基类的扩充:增加新的成员21派生类对基类成员的改造3(1).派生类通过继承方式,可以改变对基类成员的访问权限;2).可以对对基类成员函数进行重定义注:重定义时,函数名相同,参数表不论是否相同,称派生类覆盖了基类的同名成员函数(在派生类的范围内不起作用)。0
8 三、派生类的构成 1、从基类接收的成员 注:除构造函数和析构函数外,必须接收所有的数据成员和 成员函数 注:重定义时,函数名相同,参数表不论是否相同,称派 生类覆盖了基类的同名成员函数(在派生类的范围内不起 作用)。 2、派生类对基类的扩充:增加新的成员 3、派生类对基类成员的改造 (1). 派生类通过继承方式,可以改变对基类成员的访问权限; (2).可以对对基类成员函数进行重定义

山年继承继承Teacher类Person类Student类char Name[20];char Name[20];+char Name[20];+char Sex;+char Sex,tchar Sex,int Age;pint Age;intAge;void Register(char*,int, char);void Register(char *,int,char);void Register(char *, int, char);voidShowMe();voidShowMe():void ShowMe();int Number,+char Department[10];+charClassName[10];float salaryivoid Register(char*classname,新增及调整的成员void Register(char * dept,int number, char* name, intage, char sex);+float salary, char* name, intvoid ShowStu();+age, char sex);voidShowMe();
9 继 承 继 承 新增及调整的成员
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《面向对象程序设计》课程教学资源(PPT课件)第10章 类和对象(二).ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第9章 类和对象(一).ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第15章 链表.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第14章 标准库和输入输出流.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第13章 模板与异常处理.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第12章 多态性.ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第11章 类(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第10章 结构(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第21章 异常处理(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第20章 模板(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第19章 IO流(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第18章 运算符重载(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第17章 多态(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第16章 继承(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第15章 静态成员函数与友元(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第14章 堆与拷贝构造函数(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第13章 面向对象程序设计(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第12章 构造函数(PPT).ppt
- 《C语言》课程资源_智慧树使用手册_学生端使用手册.ppt
- 《C语言》课程教学课件(PPT讲稿)第25次课(函数定义、调用、参数传递、返回值).ppt
- 山东理工大学:《面向对象程序设计》课程实验指导书(C++).pdf
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第4章 AutoCAD尺寸标注.pdf
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第5章 AutoCAD绘制机械图样表达.pdf
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第6章 AutoCAD绘制机械工程图.ppt
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第1章 AutoCAD设计基础.ppt
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第2章 AutoCAD绘图平面图形.ppt
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第3章 AutoCAD绘制形体视图.pdf
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第6章 AutoCAD绘制机械工程图.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第7章 实训.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第1章 AutoCAD设计基础.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第2章 AutoCAD绘图平面图形.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第3章 AutoCAD绘制形体视图.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第4章 AutoCAD尺寸标注.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第5章 AutoCAD绘制机械图样.ppt
- 《IT项目管理》课程教学课件(讲稿)3-项目结束.pdf
- 《IT项目管理》课程教学资源(书籍文献)软件项目管理案例教程,韩万江,第3版,机械工业出版社.pdf
- 《IT项目管理》课程教学课件(讲稿)-项目管理概述.pdf
- 《IT项目管理》课程教学课件(讲稿)0-风险管理.pdf
- 《IT项目管理》课程教学课件(讲稿)1-合同 采购管理.pdf
- 《IT项目管理》课程教学课件(讲稿)2-集成管理.pdf
