- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
-java继承与多态.ppt
java核心:继承与多态 本章主要内容: 1、什么是多态? 面向对象思想“接口与实现分离” 多态原理:后期绑定 2、多态的应用 覆盖方法 抽象类 接口 3、多态设计的原则 从小棍游戏到博弈游戏 构造函数不能多态 继承还是组合? 1、面向对象思想-继承 许多人认为代码重用是面向对象程序设计提供的最伟大的一种杠杆。 面向对象学者的口号:我们再也不想发明相同的车轮了! 我们费尽心思做出一个程序后,假如不得不又新作一个程序实现大致相同的功能,那会是一件非常令人灰心的事情。但若能利用现成的代码,对其进行“克隆”,再根据情况进行添加和修改,情况就显得理想多了。“继承”正是针对这个目标而设计的。但继承并不完全等价于克隆。 继承:一个子类继承了其父类的属性和方法。 在Java 语言中,继承是通过extends 关键字实现的。 1、面向对象思想-多态 在享受继承带来的好处时,接口却不能重用.不仅不能重用,继承树还会产生更多的接口让我们头疼. 如何管理继承树的接口,使其稳定统一,同时又能容纳不断新增的多样化实现呢? 多态——使一个统一的对象行为,在实现中呈现多种形态,可以表现父类的行为,也可以表现为子类行为。 1、多态的思想-接口与实现分离 父类的接口,被子类继承.即函数名称和参数列表在继承中保持不变,只改变函数的实现体. 例:class Instrument{ void play(Note t){} } //乐器类 class Wind extends Instrument {//管乐类 void play(Note t){System.out.println(“wind play!”);}} class Stringed extends Instrnment {//弦乐类 void play(Note t){System.out.println(“stringed play!”);}} class Brass extends Instrument {//铜管类 void play(Note t){System.out.println(“brass play!”);}} 1、多态的思想-接口与实现分离 需要调用父类和子类共有的接口时, (1)先定义父类的对象引用, 例: Instrument f; (2)然后根据实际情况创建父类或子类对象,传给该对象引用. 例: f = new Wind(); (3)现在你可以用该对象引用调用共有的接口了. 例: f.play(note); (4)改变引用指向的对象,重新调用共有接口. 例: f = new Stringed(); f.play(note); 多态效果:同一条接口调用语句,适用于继承树上所有对象. 1、多态应用示例 class Music { public void tune(Instrument i){ i.play(...); } //曲调,引用乐器类 public Instrument randInstrument() { //随机抽取乐器 switch((int)(Math.random()*3)){ default: case 0: return new Wind(); case 1: return new Stringed(); case 2: return new Brass(); } } public static void main(String args[]) { //随机乐器演奏曲调 Instrument f = randInstrument(); tune(f); } 1、多态的原理-后期绑定 只写一份函数,接收父类作为参数,却在程序执行时根据对象情况,表现不同子类的行为呢? 过程化程序只能在程序执行前期,由编译和连接器完成所有函数的绑定,叫做前期绑定。 java可以在编译以后,由JVM在程序执行中动态绑定函数,叫做后期绑定。 java除了final函数以外,所有函数都后期绑定 1、多态的优点-可扩充性 扩展一个类,而不必重定义和重编译它们.这是面向对象编程的最大特点. 当上例的乐器增加,方法增加,tune函数不变,所有新类与旧类相安无事。 2、多态的应用1-覆盖方法 java.lang.Object public class Object { public String toString(); } //返回一个描述其对象的字符串 小棍游戏继承Object, 覆盖toString方法来得到游戏结果 public class OneRowNim extends Object { public String toS
您可能关注的文档
- ++++沟+++通.ppt
- +++UGNX工具栏与草图.ppt
- +EXCEL+电子表格.ppt
- +JAVA程序设计语言基础.ppt
- +SEI软件工程思想.ppt
- +Windows+XP操作系统.ppt
- +三相负载的三角形联结.ppt
- +中文Excel.ppt
- +几何光学的基本原理和成像的概念.ppt
- +可编程控制器及其应用.ppt
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)