Java面向对象程序设计_5(吴卿).ppt

Java面向对象程序设计_5(吴卿).ppt

ID:51112840

大小:1.49 MB

页数:34页

时间:2020-03-18

Java面向对象程序设计_5(吴卿).ppt_第1页
Java面向对象程序设计_5(吴卿).ppt_第2页
Java面向对象程序设计_5(吴卿).ppt_第3页
Java面向对象程序设计_5(吴卿).ppt_第4页
Java面向对象程序设计_5(吴卿).ppt_第5页
资源描述:

《Java面向对象程序设计_5(吴卿).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章继承和多态吴卿目录简介继承和子类覆盖与隐藏final对象类型转换和instanceof多态与动态绑定接口Object包装类自动装箱、拆箱内部类1简介代码复用、多态的实现途径——继承在现有类基础上派生、享有父类的属性、行为;添加自己特有的属性、行为。继承中方法覆盖、接口实现、方法调用时的动态绑定——实现多态单继承、多继承2继承和子类根——java.lang.Object语法extendsprotectedP118-121子类的构造方法(例5-3)显式调用父类的构造方法super最前面、参数不能是实例成员main能继承吗?继承与初始化P125例5-5子类继承父类若子类继承父类子类继承父类

2、所有的pulbicprotected成员,不论子类是否与父类在同一个包中;若子类与父类在同一个包中,则也继承父类的包访问权限的成员;若子类与父类不在同一个包中,则不能继承父类的包访问权限的成员;(如何访问?)子类不能继承父类的私有成员。但子类可以通过父类的public或protected方法间接访问父类的私有成员。父类子类转换?子类是一种特殊的父类苹果是一种特殊的水果父类引用可以指向子类对象水果引用=苹果对象//向上转型苹果引用=水果对象(?)将子类对象上转为父类引用,会丢失子类的个体特性。(例如:猫转换为动物,抓老鼠的特性会丢失。)--objectTrans1若父类先由子类上转,则可以之

3、后将子类引用=父类对象。类中数据成员的初始化过程首次使用某个类(创建该类的对象或访问该类的静态成员)时,JVM查找该类并加载;如有父类,且未加载,立刻转向加载父类,且层层向上追溯;在加载最终根类时,执行静态初始化动作;再层层往下执行。(onlyonce)如有创建类的对象,则执行[为实例变量分配内存、初始化默认值;层层调用构造方法,先父类再子类]例题5-5:P.125P.127,步骤解析例题:InitOrder.java覆盖与隐藏改写?派生时,若父类成员不能满足子类需求,可在子类中改写。改写是否支持多态?(覆盖[实例]和隐藏[静态])方法覆盖(重写)——子类中实例方法与父类:同名、同参、同返

4、回类型(子类型1.6),权限不能缩小,抛出异常不能增加;若同名、形参、返回不同,为方法重载。P128覆盖的条件(1)覆盖涉及的方法在父类、子类中都为实例方法;该方法在父类中不能是private(对子类可见)子类和父类的方法需要具有相同的方法名称、参数列表,且子类返回类型与父类相同或是父类的子类型。如果方法名称与参数列表相同而返回类型不同,则报错。覆盖的条件(2)子类方法的访问权限不能小于父类方法的访问权限。(权限可以提升)子类方法不能比父类抛出更多的异常。(异常不能增加)注意父类中的不可见方法:InvidibleMethod.java静态隐藏子类与父类的方法都是静态方法子类与父类的方法具有

5、相同的方法名称、参数列表、且子类的返回类型与父类相同或是子类型子类方法的访问权限不能小于父类方法的访问权限子类方法抛出的异常是父类方法抛出异常的子集数据成员和静态方法隐藏隐藏父类的实例数据成员;隐藏父类的静态数据成员;隐藏父类的静态方法。例:5-7P.129。(main能隐藏吗?)与方法覆盖相同,当某个父类的成员被隐藏,子类中直接访问的是自己定义的成员;可以super或父类名+成员访问父类中成员。隐藏中注意事项例:Hidden目录若子类隐藏父类的静态方法,而通过父类的引用调用的仍然是父类的方法。若子类隐藏父类的数据成员,无论是实例还是静态变量,只取决于引用的类型。若子类没有隐藏父类的实例变

6、量,则共享同一份实例变量的拷贝。静态成员在父类、子类中只有一个拷贝。RTTIRTTI(run-timetypeidentification)(运行期类型检查)。即运行期的多态,当一个父类引用指向子类对象时。RTTI是只针对覆盖[实例方法],不针对隐藏[静态数据成员、实例数据成员、静态方法]例:RunTime.java多态与动态绑定通过Override,RTTIP.137,5-9;(例子:Style_3)静态、动态绑定静态绑定-前期绑定(编译时)静态方法、最终方法、私有方法动态绑定-后期绑定(运行时)根据对象引用的实际类型决定关键词finalfinal可修饰-----【最终、不可改变】实例数

7、据成员、静态数据成员、局部变量finaldoublePI=3.14PI=3.1415//?????P.131,132方法最终方法,子类不能去覆盖。P.132私有方法肯定是final方法?类final类,不能被继承。对象类型转换和instanceof对象的类型转换子类对象可以向上,转换成父类对象父类对象一般不能向下转换。例外:当父类对象实际引用的是其子类对象。P.134(TestObjectCast)对象instanceo

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

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

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