- 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 应用开发详解 第6章:面向对象(高级) —— 对象的多态性 本章目标 掌握对象的向上转型及向下转型的使用 掌握对象转型的限制 多态性 多态性在面向对象中中是一个最重要的概念,在java中面向对象主要有以下两种主要体现: 方法的重载与覆写 对象的多态性 对象的多态性 对象的多态性主要分为以下两种类型: 向上转型:子类对象 ? 父类对象 对于向上转型,程序会自动完成,格式: 对象向上转型:父类 父类对象 = 子类实例 ; 向下转型:父类对象 ? 子类对象 对于向下转型时,必须明确的指明要转型的子类类型,格式: 对象向下转型:子类 子类对象 = (子类)父类实例 ; 对象的向上转型 对象的向下转型 注意:对象向下转型的要求 在以上的程序中读者已经了解了对象的向上和向下转型的基本概念,但是必须提醒读者的是,在进行对象的向下转型之前,必须首先发生对象向上转型才可以,否则将出现对象转换异常 错误的转型 对象多态性的作用 现在有以下要求: 设计一个方法,要求此方法可以接收A类的任意子类对象,并调用方法 下一章内容 E-MAIL:mldnqa@163.com ? MLDN 软件教学研发部 MLDN 软件教学研发部 class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println(A -- public void fun1(){}) ; } public void fun2(){ // 定义fun2()方法 this.fun1() ; } }; class B extends A{ // 子类通过extends继承父类 public void fun1(){ // 覆写父类中的fun1()方法 System.out.println(B -- public void fun1(){}) ; } public void fun3(){ // 子类自己定义的方法 System.out.println(B -- public void fun3(){}) ; } }; public class PolDemo01 { public static void main(String[] args) { B b = new B() ; // 定义子类实例化对象 A a = b ; // 发生了向上转型的关系,子类 -- 父类 a.fun1(); // 此方法被子类覆写过 } } class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println(A -- public void fun1(){}) ; } public void fun2(){ // 定义fun2()方法 this.fun1() ; } }; class B extends A{ // 子类通过extends继承父类 public void fun1(){ // 覆写父类中的fun1()方法 System.out.println(B -- public void fun1(){}) ; } public void fun3(){ // 子类自己定义的方法 System.out.println(B -- public void fun3(){}) ; } }; public class PolDemo02 { public static void main(String[] args) { A a = new B() ; // 发生了向上转型的关系,子类 -- 父类 B b = (B)a ; // 此时发生了向下转型关系 b.fun1() ; // 调用方法被覆写的方法 b.fun2() ; // 调用父类的方法 b.fun3() ; // 调用子类自己定义的方法 } } class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println(A -- public void fun1(){}) ; } public void fun2(){ // 定义fun2()方法 this.fun1() ; } }; class B extends A{ // 子类通过extends继承父类 public void fun1(){ // 覆写父类中的fun1()方
您可能关注的文档
- 《Authorware多媒体制作》模拟测试题二.doc
- 《Authorware多媒体制作》模拟测试题二答案.doc
- 《Authorware多媒体制作》模拟测试题一.doc
- 《Authorware多媒体制作》模拟测试题一答案.doc
- 《C1语言Windows程序设计》第1章 C1 概述.ppt
- 《C2语言Windows程序设计》第2章 NET简介.ppt
- 《C3语言Windows程序设计》第3章 C3编程基础.ppt
- 《C4语言Windows程序设计》第4章 面向对象程序设计.ppt
- 《C5语言Windows程序设计》第5章 Windows窗体与控件程序设计.ppt
- 《EDA技术与Verilog HDL》清华第2版-第2章 Verilog程序结构与数据类型.pdf
- 《Java开发实战经典》教师讲解020609 抽象类与接口的应用.ppt
- 《Java开发实战经典》教师讲解020610 实例分析:宠物商店.ppt
- 《Java开发实战经典》教师讲解020612 包装类.ppt
- 《Java开发实战经典》教师讲解020613 匿名内部类.ppt
- 《Java开发实战经典》教师讲解020611 Object类.ppt
- 《Java开发实战经典》教师讲解020701 异常的基本概念.ppt
- 《Java开发实战经典》教师讲解020702 异常的其他概念.ppt
- 《Java开发实战经典》教师讲解020801 包的定义及导入.ppt
- 《Java开发实战经典》教师讲解030901 认识多线程.ppt
- 《Java开发实战经典》教师讲解020802 访问控制权限及命名规范.ppt
文档评论(0)