java中的多态概要

java中的多态概要

ID:12054842

大小:105.00 KB

页数:4页

时间:2018-07-15

java中的多态概要_第1页
java中的多态概要_第2页
java中的多态概要_第3页
java中的多态概要_第4页
资源描述:

《java中的多态概要》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章多态学习目标:l理解Java面向对象编程中多态的概念。l掌握Java在继承中实现方法覆盖,应用多态进行面向对象编程。l掌握Object类和final关键字。封装性是面向对象的基础,继承性是软件重用的关键。而多态则必须存在于继承的环境之中,是对面向对象程序设计的补充。多态(polymorphism)性是指对类的成员方法的调用形式具有不同的实现方式,也就是“一个接口,多种实现”。多态性分为静态多态和动态多态两种,方法重载属于静态多态,而建立在继承和方法覆盖上的多态则是一种动态的多态性。8.1方法覆盖(override):1》基类的引用可以指向派生类的对象,当一个基类的引用指向派生类的

2、对象,然后通过基类的引用调用方法时,总是去调用派生类的方法。2》覆盖方法必须满足多种约束:²派生类方法的名称、参数和返回类型必须与基类方法名称、参数和返回类型一致。第4页共4页第八章多态²派生类方法不能缩小基类方法的访问权限。方法覆盖只存在与派生类和基类(包括直接父类和间接父类)之间。在同一个类中方法只能被重载,不能被覆盖。²基类的静态方法不能被派生类覆盖为非静态方法。派生类可以定义与基类的静态方法同名的静态方法,以便在派生类中隐藏基类的静态方法。²基类的非静态方法不能被派生类覆盖为静态方法。8.1动态绑定:1》向上转型:将一个派生类的对象作为它自己的类型使用,也可以作为其基类的一个对

3、象使用,这种行为叫做“向上转型”。2》当基类的引用指向派生类的对象时,对方法的调用时动态解析的。调用方法时是根据实际对象的类型(而不是根据指向对象引用的类型)来动态地选择的,这我们称为动态绑定(或运行期绑定),也就是我们所说的动态多态。3》动态绑定意味着成员方法调用中代码的地址是在尽可能晚的时候根据运行时对象的动态类型来确定的。8.2深入多态:Java语言允许某个类型的引用变量引用子类的实例,而且可以对这个引用变量进行类型转换。向下转型:引用变量转换为子类类型。第4页共4页第八章多态向上转型:引用变量转换为父类类型。8.1Object类:Object类时所有Java类的祖先,在这个类中

4、定义了所有Java对象都具有的基本行为。8.1.1equals()方法:使用equals()方法的目的时用于检测两个对象是否相等,如果相等则返回true,否则返回false。Object类提供的equals()方法实现是:判断两个对象是否指向同一个内存区域。8.1.2toString()方法:返回一个代表该对象的字符串。8.2final关键字:final修饰符可应用于类、方法和变量,虽然在分别应用于类、方法和变脸时,意义是不同的,但本质时一样的:final表示不可改变。8.2.1final类:类的设计不需要任何修饰,或者处于安全考虑而不能被继承等。最常见的final类是String类。

5、它不能有子类,它的方法也都不能被覆盖。8.2.2final方法:一个类中的任何private方法都是隐式final。第4页共4页第八章多态8.1.1final变量:用final修饰的变量表示取值不会改变的常量。final变量具有以下特征:Øfinal修饰符可以修饰静态变量、实例变量和局部变量,分别表示静态常量,实例常量和局部常量。Øfinal常量必须显示初始化,否则编译出错。对于final类型的实例常量,可以在定义时或者在构造方法中进行初始化。对于final类型的静态变量,只能在定义变量时进行初始化。Øfinal变量只能赋一次值。如果将引用类型的变量用final修饰,那么该变量只能始终

6、引用一个对象,但可以改变对象的内容。在程序中通过final修饰符来定义常量,具有以下作用:l提高程序的安全性,禁止非法修改取值固定并且不允许修改的数据。l提高程序代码的可维护性。l提高程序代码的可读性。第4页共4页

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。