文档详情

C++程序设计第11章继承与多态.ppt

发布:2017-05-20约6.83千字共32页下载文档
文本预览下载声明
第11章 继承与多态 8.1 继承与派生的概念 8.1 继承与派生的概念 8.1.1 类的派生与继承 8.1.1 类的派生与继承 8.1.1 类的派生与继承 8.1.1 类的派生与继承 8.1.1 类的派生与继承 8.1.2 公有派生与私有派生 8.1.2 公有派生与私有派生 8.1.2 公有派生与私有派生 8.2 派生类的构造函数与析构函数 8.2 派生类的构造函数与析构函数 8.2 派生类的构造函数与析构函数 8.2 派生类的构造函数与析构函数 8.3 多重继承与派生类成员标识(选读) 8.3 多重继承与派生类成员标识(选读) 8.3 多重继承与派生类成员标识(选读) 【例8.2】由圆和高多重继承派生出圆锥 8.4 虚基类(选读) 8.4 虚基类(选读) 8.4 虚基类(选读) 8.4 虚基类(选读) 8.4 虚基类(选读) * * 第八章 继承与多态 Class——封装,只能是基于对象的程序设计 封装基础上增加继承、多态——面向对象的程序设计 继承(inheritance): 是面向对象程序设计使代码可以复用的最重要的 手段,它允许程序员在保持原有类特性的基础上 进行扩展,增加功能。这样产生新的类,称派生 类。 继承呈现了面向对象程序设计的层次结构。 继承体现了由简单到复杂的认识过程。 多态性是考虑在不同层次的类中,以及在同一类中,同 名的成员函数之间的关系问题。函数的重载,运算符的重载, 属于编译时的多态性。以虚函数为基础的运行时的多态性是 面向对象程序设计的标志性特征。 体现了类推和比喻的思想 方法。 多态性(polymorphism):   层次概念是计算机的重要概念。通过继承(inheritance)的机制可对类(class)分层,提供类型/子类型的关系。 C++通过类派生(class derivation)的机制来支持继承。被继承的类称为基类(base class)或超类(superclass),新的类为派生类(derived class)或子类(subclass)。基类和派生类的集合称作类继承层次结构(hierarchy)。 如果基类和派生类共享相同的公有接口,则派生类被称作基类的子类型(subtype)。 层次概念: 派生反映了事物之间的联系,事物的共性与个性之间的关系。 派生与独立设计若干相关的类,前者工作量少,重复的部分可以从基类继承来,不需要单独编程。 交通工具 汽车 火车 飞机 小汽车 货车 客车 几何体 二维几何体 三维几何体 圆 四边形…… 8.1.1 类的派生与继承 8. 1.2 公有派生与私有派生 派生类的定义: class 派生类名:访问限定符 基类名1《,访问限定符 基类名2,……,访问限定符 基类名n》{ 《 《private: 》 成员表1;》 //派生类增加或替代的私有成员 《public: 成员表2;》 //派生类增加或替代的公有成员 《protected: 成员表3;》 //派生类增加或替代的保护成员 };//分号不可少 其中基类1,基类2,……是已声明的类。 在派生类定义的类体中给出的成员称为派生类成员,它们是新增加成员,它们给派生类添加了不同于基类的新的属性和功能。派生类成员也包括取代基类成员的更新成员。 基类1 基类2 …… 基类n 派生类1 派生类2 基类 派生类1 派生类2 (a)多重继承 (b)单继承 图8.1 多重继承与单继承 一个基类可以直接派生出多个派生类 派生类可以由多个基类共同派生出来,称多重继承。 多重继承:如果一个派生类可以同时有多个基类,称为多重继承(multiple-inheritance),这时的派生类同时得到了多个已有类的特征。 单继承:派生类只有一个直接基类的情况称为单继承(single-inheritance)。 在派生过程中,派生出来的新类同样可以作为基类再继续派生出更新的类,依此类推形成一个层次结构。直接参与派生出某类称为直接基类,而基类的基类,以及更深层的基类称为间接基类。 类族: 同时一个基类可以直接派生出多个派生类。这样形成了一个相互关联的类族。如MFC就是这样的族类,它由一个CObject类派生出200个MFC类中的绝大多数。 多层次继承: 椅子 床 沙发(单继承) 躺椅(多重继承) 两用沙发(多重继承) 图8.2 椅子,床到两用沙发 在册人员 学生(单继承) 教职工(单继承) 兼职教师(单继承) 教师(单继承) 行政人员(单继承) 工人(单继承) 研究生(单继承) 行政
显示全部
相似文档