- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级类特性(下) 模板设计模式 接口 多态 模版设计模式(Template Pattern)(示例7-7) 在类中定义了某个算法的骨架,但不具体实现,而在其子类中实现 例如,银行计算利息,都是利率乘以本金和存款时间,但各种存款方式计算利率的方式不同,所以,在账户这个类的相关方法里,只搭出算法的骨架,但不具体实现。具体实现由各个子类来完成。 模版设计模式例子 abstract class LoanAccount { //利息,本金 private double Interest,Fund; public double calculateInterest() { // 取得利率 double interest=getInterestRate(); //用于计算利息的算法:本金*利率,但是利率的算法实现并没有在这个类中实现 Interest=getFund()*getInterestRate(); return Interest; } … … /**不同的存款类型有不同的利率, 因此,不在这个父类中实现利率的计算方法, * 而将它推迟到子类中实现 */ protected abstract double getInterestRate(); } 接口(interface)(示例7-8) 接口(interface)是方法和常量值的定义的集合。 接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。 接口定义格式: modifier interface name[extends superinterface] { [attribute_declarations] [abstrct method_declarations] } 接口的继承(示例7-9) 接口和类类似,也可以从一个父接口中派生。接口的继承也是使用extends关键字来完成。 接口继承的基本语法如下: modifier interface name [ extends super_interface ,suuper_interface]{ [attribute_declarations] [abstract_method_declarations] } 和类不同的是,一个接口可以继承多个父接口 实现接口(示例7-10) 多个无关的类可实现同一个接口。 一个类可实现多个无关的接口 语法如下: class_declaration ::= modifier class name [ extends superclass ] [implements interface [,interface]* ] { declarations * } 在Java中,可以通过接口来模拟多继承 接口例子 interface Metal { public void twinkle(); } 接口例子(con.) interface Substitution { public void exchange(); } 接口例子(con.) public class Gold implements Substitution,Metal { /** *从Substitution中重载 */ public void exchange() { System.out.println(Exchange); } /** *从Metal中重载 */ public void twinkle() { System.out.println(Shining); } } 多态(Polymorphism) 在Java中,对象变量是多态的。一个类型为Aclass的变量既可以指向类型为Aclass的对象,又可以指向Aclass的任何子类的对象 以多态的形式来传递参数,增强了参数类型的灵活性 多态(Polymorphism)(con.) 一个对象只能有一种确切的数据类型 一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法 *
您可能关注的文档
最近下载
- 4郭永康光的干涉-14.ppt VIP
- 中职教育一年级上学期英语《We Are Friends》课件.pptx
- 4郭永康光的干涉-11.ppt VIP
- 《危险化学品目录(2015版)》(2022年调整)-标注为爆炸物的化学品.pdf VIP
- 湘南学院2021-2022学年第2学期《高等数学(下)》期末试卷(B卷)附标准答案.pdf
- 人美版小学四年级上册美术教案.pdf VIP
- 人教PEP版五年级上册英语Unit 2 My week单元整体教学设计(教案).docx VIP
- 4郭永康 光干涉-7 .ppt VIP
- 小学语文新部编版一年级上册全册教案(2025秋新版).doc
- 湘南学院2022-2023学年第2学期《高等数学(下)》期末试卷(B卷)附标准答案.pdf
文档评论(0)