- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java中的多态概要
学习目标:
理解Java面向对象编程中多态的概念。
掌握Java在继承中实现方法覆盖,应用多态进行面向对象编程。
掌握Object类和final关键字。
封装性是面向对象的基础,继承性是软件重用的关键。而多态则必须存在于继承的环境之中,是对面向对象程序设计的补充。
多态(polymorphism)性是指对类的成员方法的调用形式具有不同的实现方式,也就是“一个接口,多种实现”。
多态性分为静态多态和动态多态两种,方法重载属于静态多态,而建立在继承和方法覆盖上的多态则是一种动态的多态性。
方法覆盖(override):
基类的引用可以指向派生类的对象,当一个基类的引用指向派生类的对象,然后通过基类的引用调用方法时,总是去调用派生类的方法。
覆盖方法必须满足多种约束:
派生类方法的名称、参数和返回类型必须与基类方法名称、参数和返回类型一致。
派生类方法不能缩小基类方法的访问权限。 方法覆盖只存在与派生类和基类(包括直接父类和间接父类)之间。在同一个类中方法只能被重载,不能被覆盖。
基类的静态方法不能被派生类覆盖为非静态方法。 派生类可以定义与基类的静态方法同名的静态方法,以便在派生类中隐藏基类的静态方法。
基类的非静态方法不能被派生类覆盖为静态方法。
动态绑定:
向上转型:将一个派生类的对象作为它自己的类型使用,也可以作为其基类的一个对象使用,这种行为叫做“向上转型”。
当基类的引用指向派生类的对象时,对方法的调用时动态解析的。 调用方法时是根据实际对象的类型(而不是根据指向对象引用的类型)来动态地选择的,这我们称为动态绑定(或运行期绑定),也就是我们所说的动态多态。
动态绑定意味着成员方法调用中代码的地址是在尽可能晚的时候根据运行时对象的动态类型来确定的。
深入多态:
Java语言允许某个类型的引用变量引用子类的实例,而且可以对这个引用变量进行类型转换。
向下转型:引用变量转换为子类类型。
向上转型:引用变量转换为父类类型。
Object类:
Object类时所有Java类的祖先,在这个类中定义了所有Java对象都具有的基本行为。
equals 方法:
使用equals 方法的目的时用于检测两个对象是否相等,如果相等则返回true,否则返回false。
Object类提供的equals 方法实现是:判断两个对象是否指向同一个内存区域。
toString 方法:
返回一个代表该对象的字符串。
final关键字:
final修饰符可应用于类、方法和变量,虽然在分别应用于类、方法和变脸时,意义是不同的,但本质时一样的:final表示不可改变。
final类:
类的设计不需要任何修饰,或者处于安全考虑而不能被继承等。
最常见的final类是String类。它不能有子类,它的方法也都不能被覆盖。
final方法:
一个类中的任何private方法都是隐式final。
final变量:
用final修饰的变量表示取值不会改变的常量。
final变量具有以下特征:
final修饰符可以修饰静态变量、实例变量和局部变量,分别表示静态常量,实例常量和局部常量。
final常量必须显示初始化,否则编译出错。对于final类型的实例常量,可以在定义时或者在构造方法中进行初始化。对于final类型的静态变量,只能在定义变量时进行初始化。
final变量只能赋一次值。
如果将引用类型的变量用final修饰,那么该变量只能始终引用一个对象,但可以改变对象的内容。
在程序中通过final修饰符来定义常量,具有以下作用:
提高程序的安全性,禁止非法修改取值固定并且不允许修改的数据。
提高程序代码的可维护性。
提高程序代码的可读性。
第八章 多态
第 3 页 共 4 页
文档评论(0)