- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五篇 接口与多态 5.1 接口 从语言的角度看,Java的接口是该语言的又一特色。 Java不支持多继承性,即一个类只能有一个父类。单继承性使得Java简单,易于管理和维护。 Java的接口更加符合人的思维方式 5.1.1 接口的声明与使用 使用关键字interface来定义一个接口。接口的定义和类的定义很相似,分为接口的声明和接口体。 1)接口声明 接口通过使用关键字interface来声明,格式: interface 接口的名字 类重写的接口方法以及接口中的常量可以被类的对象直接调用,而且常量也可以用类名或接口名直接调用; public接口可以被任何类实现 友好接口类可以被同一包中的类实现 接口也可以继承 如果类声明实现一个接口,但没有重写接口中的所有方法,那么这个类必须是abstract类 5.1.2 理解接口 接口只关心操作,并不关心操作的具体实现 不同的类可以实现相同的接口,同一个类也可以实现多个接口 当一个类不希望通过继承使得自己具有某个方法时,可以考虑去实现接口 5.1.3 接口的UML图 5.2 接口回调 接口回调是借用了C语言中指针回调的术语,表示一个变量的地址在某个时刻存放在一个指针变量中,那么指针变量就可以操作该变量中存放的数据 在Java中,指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口方法。 当接口变量调用被类实现的接口方法时,就是通知相应的对象调用这个方法 5.2.1 接口变量与回调机制 接口变量属于引用型变量,可以存放实现该接口的类的实例的引用。 Com com; ImpleCom object=new ImpleCom(); 5.2.1 接口变量与回调机制 com=object; 接口回调非常类似于上转型对象调用子类的重写方法。 接口无法调用类中的其他非接口方法。 interface ShowMessage { void 显示商标 (String s) ; } class TV implements ShowMessage { public void 显示商标(String s){ System.out.println (s); } } class PC implements ShowMessage { public void 显示商标(String s) { System.out.println (s); . } } public class Example6_3 { public static void main (String args[]) { ShowMessage sm; //声明接口变量 sm=new TV(); //接口变量中存放对象的引用 sm.显示商标(”长城牌电视机”); //接口回调 sm=new PC(); //接口变量中存放对象的引用 sm.显示商标(”联想奔月5008PC机”); //接口回调 } } 5.2.2 接口的多态性 由接口产生的多态就是指不同的类在实现同一个接口时可能具有不同的实现方式,那么接口变量在回调接口方法时就可能具有多种形态。 5.2.3 abstract类与接口的比较 (1) abstract类和接口都可以有abstract方法。 (2) 接口中只可以有常量,不能有变量;而abstract类中既可以有常量也可以有变量。 (3) abstract类中也可以有非abstract方法,接口不可以。 如果某个问题需要使用继承才能更好的解决,例如,子类除了需要重写父类的abstract方法,还需要从父类继承一些变量或继承一些重要的非abstact方法,就可以考虑用abstract类。 如果某个问题不需要继承,只是需要若干个类给出某些重要的abstract方法的实现细节,就可以考虑使用接口。 5.3 面向接口编程 面向抽象编程:抽象类 面向接口编程:接口类 抽象类将其抽象方法的实现交给其子类,而接口将其抽象方法的实现交给实现该接口的类。 使用接口进行程序设计的核心思想:使用接口回调,即接口变量存放实现该接口的类的对象的引用,从而接口变量就可以回调类实现的接口方法。 利用接口也可以体现程序设计的“开.闭”原则,即对扩展开放,对修改关闭。 设计一个广告牌,希望所设计的广告牌可以展示许多公司的广告词 问题的分析 如果我们设计的创建广告牌类中用某个具体公司类 如果每当用户有新的需求,就会导致修改类的某部分代码,那么就应当将这部分代码从该类中分割出去,使它和类中其他稳定的代码之间是松耦合关系(否则系统缺乏弹性、难以维护),即将每种可能的
您可能关注的文档
- UML快速入门.ppt
- X线基本知识.ppt
- 操作系统及XP操作.ppt
- UML类图、交互图、协作图及示例.ppt
- Z09_高级建模.ppt
- 操作系统讲义-第六章文件管理.ppt
- UML面向对象的分析与设计.ppt
- 操作系统课件 文件管理.ppt
- UML面向对象建模chapter2用例图.ppt
- 操作系统课件OS_chapt5.ppt
- 中学数学几何直观教学中的跨学科融合研究与实践论文.docx
- 虚拟现实技术在初中地理教学中的教学效果评价体系构建与应用论文.docx
- 初中数学问题解决策略对学生逻辑思维培养的影响分析论文.docx
- 初中物理与化学实验的跨学科教学策略研究论文.docx
- 初中英语教学实践:校园绿化植物英文名词的跨文化对比与教学策略论文.docx
- 校园绿化植物对校园生态环境教育效果评价研究论文.docx
- 小学环保教育实践:快递纸箱回收变手工纸的制作过程研究论文.docx
- 初中美术教学中的传统壁画技艺传承与创新实践论文.docx
- 小学道德与法治教学中道德情感的培养策略研究论文.docx
- 初中足球课堂中的运动损伤预防与处理实践论文.docx
文档评论(0)