欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年抽象类和接口区别用法 3.pdf

    • 资源ID:32150143       资源大小:43.77KB        全文页数:6页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年抽象类和接口区别用法 3.pdf

    引言一个软件设计的好坏在很大程度上取决于它的设计模式,而任何一个设计模式都是和抽象分不开的。从面向对象设计思想来看, 复用的重点应该是抽象层的复用,而不是具体某个代码块的复用。Java 抽象类和接 IEI 代表的就是抽象类型, 是我们需要提出的抽象层的具体表现。二者作为实现抽象层定义的两种重要机制具有很大的相似性,但在实际应用中又有本质的区别。1 抽象类与接口的概念l ,1 什么是抽象类在面向对象的概念中, 所有的对象都是通过类来描绘的,但并不是所有的类都是用来描绘对象的。 如果一个类中没有包含足够的信息来描绘一个具体的对象, 这样的类就是抽象类。 抽象类用来表示我对问题领域进行分析后得出的抽象概念,是对一系列看上去不同、 但本质上相同的具体概念的抽象。 比如我们要开发一个管理乐器的软件,会发现问题领域存在着笛子、古筝等一些具体概念,它们是不同的,但都属于乐器,这里的乐器就是一个抽象概念。下面将乐器定义为抽象类:abstract class Instrument pub1ic abstract void play();public abstract void adjust() public String what() return Instrument ”I名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 我们知道,类可以被实例化生成多个对象来使用,但抽象类不能被实例化,因为它包含了没有方法体只有方法声明的抽象方法。如上例中的 play() 和 adjust(),没有提供任何实现,因为每一种乐器的演奏和调节方式都是不同的, 所以这些方法的实现细节只能在具体乐器中体现。因此抽象类必须被继承, 其中的抽象方法是强制子类必须实现的。12 什么是接口(J av a编程思想中认为接口是纯的抽象类,即接口也是抽象的、不能被实例化的, 更重要的是接口中的方法都是抽象的,这些方法要到实现这个接口的类中去实现。 接口的本质是在 classes 之间建立起一个协议,它只负责规定执行这个协议的类要实现哪几个方法,具体如何实现是由各个实现类自己决定的。下面通过一个例子来理解接口:interfaceNewCellPhone voidplayNetworkGame()l voidtakePicture()I 该接口为手机设计了2 个可供实现的方法:打游戏、照相,这2 个方法都是抽象的, 没有涉及特殊手机的任何细节,也没有涉及这些操作的具体实现。 若某一款手机希望具备这2 项功能,则该手机必需为这 2 个方法提供特定的实现机制。 总之,接口使我们只需要关心所要名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 完成的功能,无需关心实现的细节。2 抽象类与接口的相同点抽象类和接口都位于继承树的上层,它们具有以下相同点:1) 都代表系统的抽象层。2) 都不能被实例化。3) 都包含抽象方法。现在有很多时论提倡用接口代替抽象类,两者从理论上可以做一般性的混用,但在实际应用中仍存在一定的区别。3 抽象类与接口的不同点31 从语法定义上区分抽象类由 abstract关键字来修饰,接口由 interface关键字来修饰。抽象类中除了有抽象方法外, 也可以有数据成员和非抽象方法;而接口中所有的方法必须都是抽象的,接口中也可以定义数据成员, 但必须是常量。交际上,抽象类是一种特殊的类,它能包含一个类能包含的任何东西,而接口是类的抽象,它只能包含常量和抽象方法。从语法定义上看,抽象类的优势比较突出。抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,提高代码的可重用性,而接口不可以,这也是抽象类的优点所在。 这个优点很有用,扩展功能时, 在抽象父类中加入具体方法不会影响子类的实现。而在接口中加入抽象方法会影响到所有实现类,这显然是接口的缺点。32 从编程思想上区分从编程的角度来看,接口的优势比较突出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 1) 接口允许非层次类型框架构造(接口允许多重继承 )。 Java 语言中,一个类只能继承一个直接的父类, 这种单继承性为类构造了一个层次类型的框架; 而一个接口可以继承多个父接口,这种多继承性构造出的是一个非层次类型的框架。 虽然类的层次框架结构清晰, 却可能在使用抽象类时形成错综复杂的继承体系,接口的多继承性正好可以解决这个问题。 使用接口来定义行为能有效地分离行为与实现,使代码容易维护。2) 接口是定义混合类型的理想选择(类可以实现多个接口 ) 。 由于 Java类的单继承性, 抽象类作为类型定义 l 具的效能大打折扣。 在这一点上,接口的优势就很明显。任何一个实现丁某个接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现多个接口,从而这个类就有了多种类。所以接口是定义混合类型的理想工具。33 从设计理念上区分抽象类和接口的本质区别就体现在设计理念不同。接口和抽象类的存在就是为了用于具体类的实现和继承的。具体类和抽象类之间的关系是“is a”,即二者在概念本质上应该是相同的。比如,把动物定义成一个抽象类,猫和狗都属于动物,可由抽象类继承出来。而具体类与接口的关系是“ is like a”,它不要求接口的实现者和接口定义在概念本质上是一致的, 接口只是一种协议, 每个实现接口的类都必须设计遵守这个协议。 下面再通过一个例子加以说明。假设有一支可以听收音机的笔,叫做RadioPen。如果我们通过对问题领域的分析名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 得知,RadioPen 在概念本质上是一支笔, 只是具有听收音机的功能,那么我们可以这样做:1) 定义一个抽象类 P e n :abstract class Pen abstract void write(); 2) 定义一个接口 R a di 0:interface Radio void receiveRadio(); 3) 定义类 RadioPen继承 Pen并实现 Radio:classRadioPen extends Pen implements Radio void write() ;voidreceiveRadio() 相反,如果 RadioPen 在概念本质上是一个收音机,只是添加了写字的功能, 那么把 R adi0 定义为抽象类,把 Pen定义为接口,而 RadioPen继承 Radi0 且实现 Pen即可。可见,抽象类和接口的设计意图是不同的。抽象类是在概念上为具体类提供了一个模式框架,而接口是在功名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 能上为具体类提供了一个可供实现的协议。4 结论通过对 Java 抽象类和接口的分析比较得知,它们之间有很大的相似性,但又存在本质的区别。 对于它二者的选择,可以反映出设计人员对问题领域中的概念本质的理解是否正确,以及对设计意图的把握是否准确。通常,在实现抽象层的定义时是将二者结合起来以发挥各自的优势。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -

    注意事项

    本文(2022年抽象类和接口区别用法 3.pdf)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开