浅谈Java程序设计中继承的利与弊

来源 :中国学术研究 | 被引量 : 0次 | 上传用户:kekexiaozi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:在Java中,正确应用继承,能够达到代码重用、增强可靠性、简化程序设计、提高编程效率、并使之易于维护的目的。但是一个程序中过多地使用继承是不可取的,它会带来一些局限性。本文就继承的利与弊进行一个分析。
  关键词:继承;超类;子类;代码重用
  
  继承在Java面向对象编程中是与生俱来的。所有类,无论是API,还是编程人员自己编写的,都自动继承于Java所有类的始祖——Object类,代表了所有类的共性。
  一、继承的概述
  继承是面向对象设计的特点之一。和现实世界中的继承概念一样,继承就是代码重用。通过继承并扩充已经存在或编好的类。例如API类,解决应用程序中的具体问题。继承在编程中是指两个或者多个类之间存在的特定关系——定义、功能,以及逻辑上的内在联系。称继承的基础、涵盖子类的类为超类,从超类导出或继承而来的类称为子类。
  二、继承的好处
  正确应用继承技术,能够达到代码重用、增强可靠性、简化程序设计、提高编程效率、并使之易于维护的目的。
  1.代码重用
  代码重用性是指在存在继承关系的类中,超类已经存在的代码,包括成员变量和方法,可以继承到子类中。子类通过继承获得了这些代码,就可以像自己的“财产”或属性一样使用。不仅如此,子类还可以增添新的变量和方法,并且可以通过覆盖超类的方法改变自己的行为,使之功能更强大,解决的问题更具体。在继承中,一个子类可以有一个或者多级超类,形成一个继承链。紧挨着子类上面的超类被称作直接超类,或者父类;反过来讲,紧接着超类的子类被称作直接子类。沿着这个继承链再往上走,所有这些类都是子类的超类,或称间接超类,或者祖类。当然,最上面是所有类的始祖——Object。在继承中,一个子类继承了所有在该继承链上的父类和祖类的变量和方法,再加上自己新增的变量和方法。子类在继承中是相对而言的术语。一个子类很可能是下一级继承的超类。在继承链中从上往下,是一个从抽象到具体、从共性到特性的过程。超类代表所有其子类共有的变量和方法;子类继承这些属性,并可能增添代表它自己特征的变量和方法。这样保证了继承的效率,提高了代码的重用性。
  2.代码可靠性
  代码重用这一特点实际上蕴含着不可多得的益处——提高代码的可靠性。充分利用API类可以提高代码的可靠性,这些API类由职业语言开发者编写、经过多年的修改、改进和完善,经过广泛的不同规模和层次的实际应用,代码的可靠性应该毋庸置疑。在继承中利用API类,就如同“站在巨人的肩膀上”一样,除了代码重用之外,还大大提高了应用软件的可靠性。
  3.其他好处
  (1)简化程序设计——继承API类的好处不言而喻。例如,编写一个有按钮、菜单、鼠标控制的窗口绘图软件,如果不继承JDK提供的JFrame、JMenu、Graphics等API类,其编程难度可想而知。
  (2)提高编程效率——简化程序设计必然会提高效率。如上例,我们不再为如何编写显示窗口的JFrame代码而伤透脑筋;也不必为如何控制鼠标的移动(MouseMoveListener)而煞费苦心。
  (3)增强程序维护性——继承体现面向对象编程的本质:模块化设计和封装性。对程序的更新改进,只涉及到相关的类,而不是整个程序体。正确运用继承,对代码的修改不会产生“触一发而动全身”的效应。封装性的功能使得能够做到不用了解具体代码详情就可使用的效果,大大简化和缩小了维修目标和纠错范围。例如,我们将会对程序的维护集中在继承而来的子类上,而不是作为超类的API类。
  三、继承的局限
  使用继承最大的好处是可以实现代码的重利。但是,一个程序中过多地使用继承也是不可取的,因为它可能会为子类的改变带来困难。
  1.过多层次的继承带来的问题
  在软件工程理论中,一个软件产品要做到高内聚、低耦合。所谓内聚指的是模块内元素之间彼此关联的紧密程度,可以理解为软件中类内部之间的关联程度。所谓耦合指的是软件中几个不同的模块之间彼此关联的程度,可以理解为类与类之间相互依赖的程度。一个软件产品的高内聚、低耦合可以这样理解:这个软件产品中的每个类,都可以独立地完成某个特定的功能,并且类与类之间没有过多的依赖关系。过多层次的继承带来的一个问题就是会使软件产品的耦合性增强。
  过多层次的继承增强了类与类之间的依赖关系。最明显的问题是对顶层超类的改动可能会使与其相关的所有子类出现不正确的操作。如果继承的层次过多,而且对超类的更改过于频繁,会给底层子类的修改带来很多麻烦和问题。尤其是在一个大型的应用程序中,往往每一个软件开发人员只完成自己对应的模块,如果由于继承层次过多,使得对父类的修改造成其子类及相关的类的功能出现问题,那么修改起来所费的人力和工作量可能会是相当大的。
  2.其他局限
  (1)Java只支持单继承,而不允许多重继承,但可以利用接口实现多重继承。
  (2)对象一旦实例化,不能够转换角色。例如,学生对象不可能再转换成教师。
  (3)数据安全问题。例如,某个对象需要访问继承而来的超类数据,必须给予所有对象访问这些数据的访问权。
  (4)在多线程并行处理中,继承中的子类对象可能导致线程间的不协调问题。
  这些局限无疑对程序设计和编码提出了更高的要求。
  结束语
  继承给软件开发展示了无限机遇,也伴随着困惑和挑战,在Java程序设计中,要利用好继承这把“双刃剑”。
  
  参考文献:
  [1]孙浏毅等编著,《Java宝典》,电子工业出版社,2009年8月.
  [2]高永强著,《Java编程艺术》,清华大学出版社,2009年7月.
其他文献
摘 要:叙述了公路施工企业工程投标和施工管理协调发展的重要性和当前存在的问题及解决方法。  关键词:工程;投标;施工;管理;协调;发展    施工企业承建的工程来自投标,信誉和效益来自于施工管理,工程投标和施工管理是施工企业最重要的两个环节。如何使二者有机协调,最大限度发挥现有的资源,这关系到企业的生存与发展。所以,当前施工企业的领导必须下大力气抓好企业的工程投标和施工管理,只有使二者协调发展,才
期刊
随着科学技术迅速的发展,新技术,新工艺,新材料被广泛使用到各领域.就工程机械领域而言,电控发动机的被广泛采用,不仅使工程机械的结构变得复杂,同时对工程机械的经济性和环保性提出了更高的要求。  这就要求驾驶员要提高水平,不仅懂得发电机的原理、结构、性能,还要学会正确使用和合理保养电控发动机,延长其工作寿命。结合自己多年的工程机械管管理经验,本文对电控发动机在日常使用和保养,就电控发动机的启动、运转、
期刊
摘 要:RTK技术是GPS测量技术发展中的一个新突破,在很多领域已得到广泛的应用,目前在GIS数据采集中也有非常好的应用前景。本文阐述了RTK技术的原理和在GIS野外数据采集中作业的实施,以及RTK应用中应注意的几个关键技术及处理方法。  关键词:GIS;GPS;RTK;数据采集    地理信息系统(GIS)是一种采集、储存、管理、分析和描述整个或部分地球表面(包括大气层在内)与空间和地理分布有关
期刊
摘 要:本文主要从现代水利水电施工技术角度介绍了水电施工总体的要求、技术要点、施工周期等相应技术环节。论文通过在实践中总结出来的经验,要求水利水电技术人员经过认真学习熟练掌握,应用到实际工作中,以确保施工质量,加快工程进度,提高经济效益。  关键词:水利工程;保护水资源;水工建筑;施工技术;施工周期    在现代水利水电工程施工过程中,首要的任务就是除水害、兴水利,并且开发、利用和保护水资源为前提
期刊
摘 要:深入分析煤矿井下电网运行状况,针对目前供电系统普遍存在谐波源和无功功率这二大问题,严重影响电网安全、经济运行,给煤矿安全生产、经济效益带来严重损失的实际情况,提出在井下变压器二次侧配置具有有效抑制谐波、动态补偿电网无功功率,稳定受电端及电网电压质量功能的自动补偿装置,实现节能降耗,提高功率因素0.9以上,抑制谐波污染,达到井下电网安全,经济运行的目的。  关键词:井下电网;无功补偿;节能降
期刊
摘 要:马克·吐温的代表作《哈克贝利·费恩历险记》是一部成长小说,它记载了小哈克的心路成长历程。促成其成长的因素有两个,一是不断地否定既定的道德准则,一是有黑奴吉姆的榜样作用。本文将通过勾画密西西比河沿岸的风土人情,讨论哈克为何采取逃离的方式来否定内战前美国南方的“文明社会”,进而总结哈克的成长过程。  关键词:“文明”;出逃;成长    《哈克贝利·费恩历险记》是美国著名作家马克?吐温的作品中的
期刊
摘 要:本文基于灰色预测理论,采用残差及残差修正的考察来判断模型的精度的灰色预测的方法,建立了民航油料保障灰色需求预测模型,能很好地解决油料保障消耗的预测问题。  关键词:油料保障; 模型;残差模型;灰色预测    现代社会要求后勤保障工作具有精确性,大量后勤保障物资的使用使得经验预测变得越来越不适应战争,其它预测方法虽然精度高,但是在后勤保障中可以利用的时间短,不可预测因素多的情况下,灰色预测就
期刊
摘 要:90年代以前,城市建设中由于种种局限性,园林绿化工作处于一个比较落后的状态,到如今已不能满足人们的环境要求。90年代以来,我国许多大中城市在市场经济发展的大潮和经济规律的作用下,旧城改造达到了一个前所未有的高潮。改变城市面貌,提高人民居住水平,挖掘城市用地潜力等多方面的因素,使旧城改造在世纪末的城市建设中显现出重大意义并占有了非常重要的位  关键词:旧城改造;园林绿化;问题     1、问
期刊
摘 要:简要介绍了国内外管道加油车的发展和对水击问题研究的发展和现状,介绍了键合图法的发展和应用。  关键词:水击;仿真;管道加油车    引言  使用加油车给飞机加油,始于第二次世界大战期间。飞机加油车出口的燃油压力一定,它向飞机油箱加油,满油时飞机加油控制活门的快速关闭将引起水击,该过程中最大压力往往发生在阀口附近的管路,由于加油管路系统比较短,水击传播快,高于期望的水击压力将严重威胁到管路系
期刊
林火的发生是一个极其复杂的自然现象,由于它发生在一个完全开放的环境中,所以涉及的因素很多,既有自然属性,又有社会属性。作为森林防火工作者往往要面对诸如可燃物的类型及其分布状况、地形地貌分布状况、气象因子等等错综复杂的信息,并在此基础开展林火预防、扑救、善后处理等工作。要全面掌握如此之多的信息和从中分析出有用信息以及准确定位都需要很大的工作量。特别是林火发生又带有突发性,要在很短的时间判断林火的发展
期刊