- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC++第十一章.ppt
第11章 类的继承 前面介绍了面向对象程序设计的一个重要特性——封装性(encapsulation)。本章介绍另外两个重要特性——继承性(inheritance)和多态性(polymorphism)。 继承性是类之间的一种关系,表示了一个比较抽象的类与一个比较具体的类之间关系。比较抽象的类称为基类、而比较具体的类称为派生类。派生类的一个对象也是基类的一个对象。派生类继承了基类中定义的成员,而且可以扩展新成员。继承性是软件复用的一种形式。 多态性的一般含义是一个名字有多种具体解释,C++语言中的多态性有编译时刻的静态的多态性,如函数重载、运算符重载函数,还有运行时刻的动态的多态性。动态多态性与继承性相关,本章将介绍动态多态性。 11.1 继承与派生 11.1.1 基类与派生类 考虑人与大学生之间的关系。首先,一个人作为一个对象,建立一个Person类如下: class Person{ string name; //姓名 char sex; //性别,f=Female; m=Male string idno; //身份证号 Date birthdate; //出生日期,成员对象 ... //其它成员 }; 学生如何描述?一名学生作为一个对象,建立一个Student类可能如下: class Student{ string name; //姓名 char sex; //性别,F=Female; M=Male string idno[20]; //身份证号 Date birthdate; //出生日期,成员对象 string schoolName; //所在学校名称 Date enrollDate; //入学日期 ... //其它成员 }; 我们发现一名学生完全包含了一个人的全部属性和行为。这是因为一名学生本来就是一个人,只是扩展了一些特殊属性。我们不能在Student类中包含一个Person对象作为其成员对象,否则就形成了错误的语义描述。 正确的描述应该是,一名学生作为Student类的一个对象,同时也是Person类的一个对象。简言之,一名学生是具有学校、入学日期等属性的一个人,描述如下: class Student : public Person {//Student类作为Person的派生类 string schoolName; //所在学校名称 Date enrollDate; //入学日期 ... //其它成员 }; Student类是从类Person派生而来的。Person类就是Student的基类(base class)、或超类(super class)、或父类(parent class)。Student类继承了Person类的所有成员,再扩展自己的一些成员。Student类是Person的一个派生类或衍生类(derived class)、或子类(subclass)、或扩展类(extend class)。 在继承性关系中,基类表示比较抽象的概念,拥有较少的内涵(即较少的属性),而具有较大的外延(即较大的集合范畴)。而派生类表示比较具体的概念(也称为具象),拥有较多的内涵(即较多的属性),而具有较小的外延(即较小的集合范畴,派生类对象集合是其基类对象集合的子集)。 在C++派生类中,仅描述扩展部分的属性,而派生类对象则拥有其所有的直接或间接的基类中描述的属性。因此派生类的定义是基于其基类而存在的。 单继承和多继承 基类与派生类之间的关系如下: (1)基类是对派生类的抽象,派生类是对基类的具象。基类抽取其派生类的一般特征作为成员,而派生类通过扩展新成员来表示更具体的类型,派生类是基类定义的延续和扩展。 (2)派生类的一个对象属于其基类,也是基类的一个对象。当需要一个基类对象的地方,而实际提供了派生类的一个对象,应该是无条件满足要求的。这就是继承性的最基本原则——里氏替代原则。如果这种替代是有条件的,那么这个继承性关系就存在潜在问题 11.1.2 派生类的定义与构成 定义派生类的一般格式如下: class 派生类名 : 继承方式1 基类名1, 继承方式2 基类名2, …, 继承方式n 基类名n{ 派生类扩展的成员 }; 其中,继承方式规定了派生类对基类成员的访问控制方式,控制基类成员在什么范围内能被派生类访问。每一种继承方式,只对紧随其后的一个基类进行限定。 继承方式有三种:public(公有继承)、private(私有继承)和protected (保护继承)。如果省略继承方式,缺省为private私有继承,而最常用的是public公有继承。 派生类的一个对象的成员由两部分构成:一部分是从基类继承来的,另一部分是自己扩展的新成员,所有
您可能关注的文档
- ((人教版))[[高一化学课件]]高一化学第三章《金属及其化合物》课件.ppt
- ((人教版))[[高一物理课件]]新课标人教版高一物理必修一《牛顿第二定律》课件.ppt
- ((人教版))[[高二化学试题]]高二化学选修五第三章《烃的含氧衍生物》单元测试题.doc
- ((人教版))[[高二化学课件]]高二化学第三节《生活中两种常见的有机物乙醇》课件.ppt
- (人教版)三年级上册第三单元作文指导_秋天的图画.ppt
- (冀教版)四年级英语下册教案.doc
- (北京课改版)七年级数学下册第一次月考测试题.doc
- (北师大版)一年级数学课件下册第二单元观察物体.ppt
- (精品课件)高中生物必修一第一章走近细胞.ppt
- (苏科版)初二物理测验第一单元A.pdf
文档评论(0)