- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 继承与多态 上一章主要阐述了类和对象的概念。本章将学习面向对象程序设计中两个重要的概念—继承和多态。利用继承,可以基于已经存在的类构造新类,还可以在新类中添加一些新的成员或修改继承了的成员,以满足新的需求。而多态是在继承的基础上引出的,可以解决子类父类中的成员重名问题。 4.1 继 承 概 述 利用继承可以很好地实现代码重用问题。在利用已有的类构造新类时,新类保留已有类的属性和行为,并可以根据要求添加新的属性和行为。例如,卡车具有一般汽车的属性,而特有的属性就是载货。在第3章中,曾经介绍过类之间的关系:“USES-A”关系、“HAS-A”关系、“IS-A”关系。其中,“IS-A”关系是继承的一个特征。 4.1.1 超类、子类 被继承的类一般称为“超类”或“父类”,继承的类称为“子类”。当子类继承超类时,不必写出全部的实例变量和方法,只需声明该类继承了的已定义的超类的实例变量和方法即可。超类、子类是继承中非常重要的概念,它们形象地描述了继承的层次关系。 继承节省了定义新类的大量工作,可以方便地重用代码。例如,把汽车作为父类,当创建汽车的子类轿车时,品牌、价格、最高时速等属性会自动地被定义,调用刹车方法时会自动调用在汽车类中定义的刹车方法。但一个子类不必非要使用继承下来的属性和方法,一个子类可以选择覆盖已有的属性和方法,或添加新的属性和方法。 4.1.2 继承层次 继承关系可以用树形层次表达出来。为汽车类的继承层次关系,注意,汽车类定义了品牌、价格、最高时速等属性(成员变量),以及刹车、启动等方法。当定义继承汽车类的子类卡车时,它自动继承汽车类的属性和方法。 继承只是代码重用的一种方式,滥用继承会造成很严重的后果。只有当需要向新类添加新的操作,并且把已存在类的默认行为融合进新类中时,才需要继承已存在的类。 4.2 Java中的继承 在Java中,实际上所有的类均直接或间接继承自java.lang.Object类,也可以说Object类是Java中的总根类。实际开发中,如不特殊指定,开发人员自己定义的类均直接继承自Object类。 4.2.1 派生子类 在Java中,类的继承通过entends关键字实现。在创建新类时,使用extends指明新类的父类,具体语法如下。 class 子类名 extends 父类名 { 子类类体 } 4.2.2 继承规则 当类B成功继承类A后,就涉及到成员变量的继承问题。下面将从两个方面介绍成员变量继承的相关知识,主要包括成员变量的继承规则与成员变量的隐藏。 1.成员变量的继承规则 2.成员变量的隐藏 对于成员变量来说,当子类本身具有与继承自父类的成员变量名称相同的成员变量时,便构成了成员变量的隐藏。其含义是,在子类中直接调用该成员变量时,将调用的是子类中本身具有的成员变量,而不是从父类继承的成员变量, 4.2.3 方法的继承与覆盖 在类继承机制中,方法的继承和覆盖是其核心内容之一。方法继承允许子类使用父类的方法,而覆盖是在子类中重新定义父类中的方法,更显示了继承的灵活性。 1.方法的继承 从本质上讲,方法也是一种成员,因此继承规则与成员变量的继承规则完全一样,其是否能被继承同样取决与访问限制。 2.方法的覆盖 子类的自身方法中,若与继承过来的方法具有相同的方法名,便构成了方法的重写(有的资料称之为方法的覆盖)。重写的主要优点是能够定义各子类的特有行为, 4.2.4 this与super 在Java中,this和super与继承是密切相关的。this常用来引用当前对象,而super常用来引用父类对象。 1.this 方法中的某个对象与当前对象的某个成员有相同的名字,这时为了不至于混淆,可以使用this关键字来指明要使用某个成员,使用方法是“this.成员名”,即使用this隐式地引用对象的实例变量和方法。 2.super super用来引用父类的成员,包含父类的构造函数、属性以及方法。使用方法为super变量名或super.方法名(实参)。 4.3 强制类型转换 在前面的章节中曾经介绍过,将一个类型强制转换为另一个数据类型的过程称为强制类型转换。本节中的强制类型转换只在继承过程中发生引用类型转换,而不是基本数据类型的转换。 引用类型转换指对象引用的强制类型转换,在学习对象引用的强制类型转换之前,先介绍一下对象引用能指向什么样的对象。通过前面几章的学习,可以知道不管什么类型的对象引用,均能指向其自身类型的对象实例,下面的代码说明了这个问题。 1 //汽车类型的引用c指向汽车类型的对象 2 Car c=new Car(); 3 //卡车类型的引用t指向卡车类型的对象 4.4 动 态 绑 定 所谓的动态绑定,通俗的就是指,对象在调用方法的时候能够自己判断该调用谁的方法。所以动态
您可能关注的文档
- 新JavaScript程序设计基础教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 阮文江 第七章 对象编程1.ppt
- 新JavaScript程序设计基础教程 教学课件 曾海 第9章 CSS+DIV技术.ppt
- 新JavaScript脚本程序设计 教学课件 吴以欣 陈小宁 第3章 JavaScript常用内置对象.ppt
- 新Java编程与应用教程 教学课件 张莉 java_03.ppt
- 新Java编程与应用教程 教学课件 张莉 java_11.ppt
- 新Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 朱喜福2 1_ 第7章 Java的图形与用户界面.ppt
- 新Java程序设计 第二版 普通高等教育“十一五”国家级规划教材 教学课件 朱喜福2 第3章 类、类的继承和接口.ppt
- 新Java程序设计教程 工业和信息化普通高等教育“十二五”规划教材 教学课件 段新娥 贾宗维 2_ chap9.ppt
- 新Java程序设计教程 教学课件 杨晓燕 java9.ppt
- 新Java程序设计教程 教学课件 杨晓燕 Java11.ppt
最近下载
- 2024-2025学年全国中学生天文知识竞赛考试题库(含答案).pdf VIP
- 2024届福建省莆田市高三第二次教学质量检测二模生物试卷.doc VIP
- 电梯维修及维护人员的安全知识与技能培训课件.pptx VIP
- 小学新教育实验实施方案(详细).docx
- 23中英文双语单片机车辆防碰撞外文文献翻译:基于超声波与单片机嵌入式系统开发集成应用的汽车防撞系统设计.doc VIP
- 八年级数学上册《分式》教案教材分析.pdf VIP
- 大华DSS5000系列-客户端操作手册-.docx
- 2013款上汽通用别克君越_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- 人教版数学二年级下册全册教学课件(2023年新教材).pptx
- 越人歌-钢琴伴奏谱.pdf
文档评论(0)