Java的多态性分析

来源 :城市建设理论研究 | 被引量 : 0次 | 上传用户:a421455206a
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要] Java是一种面向对象的编程语言,实现了面向对象三大特性之一的多态性。本文深入分析了Java多态性的表现形式,并给出了具体的分析实例。
  [关键词] Java面向对象 多态 上转型
  多态性(polymorphisn)是面向对象编程语言的主要特性之一,是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给他的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
  Java是一种面向对象的编程语言,一般来说,他的多态主要是存在两种类型:编译时的多态和运行时的多态。
  一、Java编译时的多态
  编译时的多态主要是通过函数重载和重写来实现的。
  (一)通过函数重载实现多态
  函数重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。运用参数的不同来实现多态,是最简单易懂的,这里就不举例了。
  (二)通过继承实现多态
  当子类重新定义了父类的虚函数后,父類指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。这样的函数地址是在运行期绑定的(晚绑定),因而实现了“多态”。
  
  
  这个实例是通过继承中超类对象引用变量引用子类对象来实现。
  二、Java运行时的多态
  运行时的多态在不同的语言中拥有不同的实现方案。C++通过虚函数的晚捆绑来实现,而Java通过面向接口编程和面向抽象编程来实现动态调用相应的函数实现。但归根结底,这些语言都是通过将多种特殊实现的类抽象为一个泛化类来实现运行多态。
  (一)通过接口编程实现多态
  接口的灵活性就在于“规定一个类必须做什么,而不管你如何做”。我们可以定义一个接口类型的引用变量来引用实现接口的类的实例,当这个引用调用方法时,它会根据实际引用的类的实例来判断具体调用哪个方法。
  
  
  这个实例是通过接口类型变量引用实现接口的类的对象来实现的。
  (二) 通过抽象类实现多态
  
  
  另外,jdk1.5以后,泛型的出现,丰富了java的多态性表现,可以用向上转型实现多态,例4中,创建了抽象类weapon的父类对象person,和两个子类的实例ak47和bb。这个“人”先捡起枪ak47,开火嗒嗒嗒嗒嗒嗒,然后捡起炸弹,开火BomB!!BomB!!子类创建的一个对象引用ak47复制给其父类对象person,通过父类对象person调用子类重写父类的方法fire时,调用的是子类重写的方法fire,若将父类对象再强制转化为相应子类的对象bb时,该子类对象又具备了子类所有的属性和方法。
  
  
  三、结束语
  我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。以上就是java运行时多态性的实现方法,大家在编程过程中可以灵活运用,但是在性能要求较高的代码中不提倡运用运行时多态,毕竟Java的运行时动态方法调用较之普通的方法调用的系统开销是比较大的。
  注:文章中涉及的公式和图表请用PDF格式打开
其他文献
从总体上看,高中仍然是我国教育事业的薄弱环节,办学机制以及人才培养的规模、结构、质量还不能适应经济社会发展的需要。”因此,加强素质教育,提高劳动者素质,比任何时候都更迫切。凭从事多年班主任工作的实践,就在班级管理中如何实施素质教育提出如下探讨。   一、在班级素质教育目标的构建中加强养成教育   1.确立班级管理目标——创建现代化班级体   在班级中首先提出现代班级体的相对标准,展示在学习园地中。
期刊
【摘要】随着房地产业的迅猛发展,房地产的价格问题越来越引起人们的关注,导致近几年房价快速上涨的因素是多方面的,有经济快速发展下的合理因素,也有利益驱动下的投机行为;有住房消费观念的影响,也有深层次的制度制约。这些因素的共同作用,最终体现为房地产市场供求关系的过度失衡。 作者试就对我国房地产价格趋势的发展谈一下自己浅显的认识。  【关键词】房地产 价格上涨策略  一、影响房地产价格上升的因素  1、
期刊
【摘要】为了保证在建工程质量,着重控制基础施工,关键在于对现场施工技术严格控制;现场关键施工人员应全面了解工程机械性能,加强规范操作能力;技术管理人员应加强技术控制能力。  【关键词】全液压钻机钻孔灌注桩控制技术要求  一、KTY型钻机介绍  KTY4000型钻机全名KTY4000全液压动力头钻机;是铁路和公路桥梁、煤矿通风井、港口码头及高层建筑等大型基础工程钻孔施工机械。  该型钻机主要由动力头
期刊
摘要:介绍了基层兽医在畜禽疾病防治中的误区,包括盲目用药、不明药物适应症用药、不懂得药物使用剂量和疗程、给药途径或操作技能不当等内容,并提出对策,以期为基层兽医防治畜禽疾病提供参考。   关键词:基层兽医畜禽疾病防治误区对策    基层兽医由于受文化程度的限制,没有接受过系统的畜牧兽医理论教育,因而在基層兽医临床实践中存在着许多误区,影响了畜禽疾病的正确诊治,延误治疗时机,造成用药多、疗效差的不良
期刊
新课改以来,出了好几个版本的教科书,但是没有哪一本可以让人一看就爱不释手的,都是光突突的历史主干知识,缺少真实的历史血肉。再加上历史本身又是副科的,学生不重视。如果不是由于考试的压力,没有愿意去学的 是什么原因导致现今的学生对历史不感兴趣呢?笔者仔细推敲了下,大致有以下三点:   1、体系繁杂的教材:  现在江苏的历史教科书主要有人教版、人民版两个版本。总体来看两个版本的体系内容大体相似,但是两本
期刊
【摘要】满足顾客需求的酒店设计才是顾客所青昧的,因此,“以人为本”、“注重个性化”的设计理念逐渐成为了现代酒店设计的主流。本文试图从人性化设计的角度去探讨现代酒店设计中如何凸显这一特点,旨在能为酒店设计在每个角落能增添人性化理念。  【关键词】酒店设计;人性化体现;空间设计;设计思维  1.酒店设计思维  酒店是公共空间和私人空间交集的场所,如何能让顾客感到宾至如归还充满惊讶和新鲜感,如何能让顾客
期刊
摘要:介绍了海城市畜牧业的发展现状,指出大力发展畜牧业的条件,并结合当前的实际情况,提出发展建议,以为该县畜牧业的又好又快发展提供参考。   关键词:海城市 畜牧业 总产量 优化产业结构循环经济   1. 海城市畜牧业的基本情况   近年来,海城市采取政策引导、资金扶持、强化免疫等措施,坚持深化改革,以市场为导向,优化产业结构,依靠科技进步,发展规模经营,强化社会化服务,使畜牧业呈现出了高速发展的
期刊
【摘要】俗话说“房屋建筑工程质量无小事”,房屋建筑工程的质量不仅关系到项目投资能否成功,更为重要的是,建成后的项目直接参与到人们的日常生产和生活中去,这就还关系到国家和人民的生命、财产安全。本文通过论述房屋建筑施工质量管理对提高房屋质量重要意义,从建立运行质量保证体系和各项工程质量管理规章制度、建筑材料采购、加强施工现场监督和控制以及建立质量目标责任制等几个方面提出了提高房屋建筑施工质量管理的措施
期刊
【摘要】 导数是微分学中最基本的概念,本文通过利用导数求切线方程、利用导数分析函数的单调性、利用导数求函数的极值、利用导数求函数的最值、利用导数分析函数的凹凸性等方面的应用,说明导数的重要性。  【关键词】导数;单调性;凹凸性;拐点  导数是进一步学习数学和其他自然科学的基础,是现代科学技术研究必不可少的工具。导数反映了函数随自变量变化的快慢程度,即函数的变化率,它使人们能够用数学工具描述事物变化
期刊
摘 要: 本文主要介绍了GPS的组成及定位原理,分析了GPS在工程测量中的优点,阐述了GPS在工程测量中的实施步骤,指出了应用GPS 进行工程测量时的注意事项。  关键词: GPS;组成与原理;工程测量;应用;体会  全球定位系统它是一种可以通过定时和测距进行空间交会定点的导航系统,可向全球用户提供连续、实时、高精度的三维坐标、三维速度和时间信息。  1 GPS 系统的组成  GPS定位系统由GP
期刊