- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 Java多态
Java面向对象程序设计基础 Java面向对象程序设计基础 东软电子出版社 Java面向对象程序设计基础 Java面向对象程序设计基础 东软电子出版社 Java面向对象程序设计基础 QA 东软电子出版社 Java面向对象程序设计基础 谢谢 东软电子出版社 Java面向对象程序设计基础 东软电子出版社 Java面向对象程序设计基础 东软电子出版社 Java面向对象程序设计基础 东软电子出版社 Java面向对象程序设计基础 东软电子出版社 Java面向对象程序设计基础 东软电子出版社 Java面向对象程序设计基础 东软电子出版社 Java面向对象程序设计基础 东软电子出版社 Java面向对象程序设计基础 东软电子出版社 第8章 多态 父子类对象的使用与转化 abstract修饰符 本讲内容 父子类的对象在某些情况下可以相互转化。 示例1:Fruit.java 示例2:Wind.java 示例3:Shape.java 父子类对象的使用和转化 子类对象可以当作父类对象使用 父类对象不能当作子类对象使用 如果一个方法的形式参数定义的是父类的对象,那么在调用这个方法时可以使用子类的对象来作为实际的参数; 如果父类引用实际指向的是子类对象,那么该父类引用可以通过强制转换成子类对象使用 转化原则 对于一个引用类型的变量,编译器按照它声明的类型处理。 例如以下代码编译出错。 如果要访问Sons的成员,必须通过强制转换;如果父类引用实际指向的是子类对象 转化 Fathers f = new Sons(); f.sonVar = “123; f.sonMethod(); ((Sons)f).sonVar=123; ((Sons)f).sonMethod(); 用 instanceof 操作符测试一个对象是否是一个类的实例 示例 instanceof操作符 多态:一种功能有多种实现。通过方法的重载和覆盖可以实现多态。 示例1:SchoolMember3.java 动态绑定:方法体的调用是在程序执行时动态决定的。是实现多态的保证。 示例2:Wind.java 示例3:TestPoly.java 多态性与方法的动态绑定 成员变量、静态方法按照引用变量声明的类型静态绑定;实例方法按照引用变量的实例动态绑定 例如,对于以下这段代码: 运行时将会输出如下结果: 成员变量或成员方法的访问控制 Fathers f = new Sons(); System.out.println(“f.var=”+f.var); System.out.println(“f.staticVar”+f.staticVar); f.method(); f.staticMethod(); f.var=FatherVar f.staticVar=StaticFatherVar Son method Static Father method 抽象类:用abstract修饰的类。 只能用于继承,不能用于创建对象 示例:Fruit2.java abstract修饰符 抽象方法:用abstract修饰的方法 只有方法头没有方法体。 抽象方法只能定义在抽象类中 示例:TestPoly2.java 抽象方法的作用:强制非抽象子类中必须实现(覆盖)这个抽象方法。 示例:Fig.java abstract修饰符 abstract类 不能实例化,只能用于继承 abstract方法 只有方法头,没有方法体 只能定义在抽象类中 注意: 抽象类中可以有具体方法 抽象类中的抽象方法在其非抽象子类中必须实现(覆盖) 要点 为一个州立大学建立帐单系统,州内和州外学生的收费标准不同,州内每学分收费$75,州外每学分$200。每个学生帐单上都显示学校的名字,学生自己的名字,所选学分和帐单总额。 练习 建立一个学生抽象类,有属性学校名,学生名,学费。有计算学费的抽象方法和打印账单的方法。 建立一个州内学生类,实现计算学费和打印账单的方法,有一个构造方法。 建立一个州外学生类,实现计算学费和打印账单的方法,有一个构造方法。 在main方法中初始化一个州内学生一个州外学生,打印各自的账单(帐单上显示学校名,学生名,所选学分和学费)。 * 多态(polymorphism)就是指“多种形态”.多态就是同名但是形态(即功能)不同的方法。提高了程序设计的抽象性和简洁性。Java的多态性就是指方法和引用的多态。由方法多态引发的编译时多态性,由引用多态引发的运行时多态性 package unitproject; /** * 一天,小明的妈妈买了一篮子水果(Fruit),有香蕉(Banana)、苹果 * (Apple)和椰子(Coconut)。小明在吃这些水果时,如果拿到了一个香蕉 * 就要“剥了皮吃”,如果拿到了
您可能关注的文档
最近下载
- 高中物理24个题型.docx VIP
- 高中化学——高中化学知识清单.docx VIP
- 人教版高中物理高考必考重点知识点总结完整版(必修+选修).pdf VIP
- 2023年中考英语专题复习——冠词+答案.pdf VIP
- 2023年中考英语真题分项汇编(全国通用):专题04 单项选择之时态和语态(第02期)(解析版).docx VIP
- 【中考真题】2024年新疆维吾尔自治区中考语文试卷(附答案) .pdf VIP
- 2024年兰州市高三诊断考试(一诊)英语试卷(含官方标准答案)后附原卷扫描版.docx
- 2024年黑龙江哈尔滨市中考数学真题卷及答案解析.pdf VIP
- 2025年春新人教版物理八年级下册全册教案.pdf
- 五年级综合算式计算题 100题.doc
文档评论(0)