- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章 2012抽象类和接口
显示的结果如下: 如下例,可以使用clone方法来克隆一个数组。 显示结果: 定义一个客户自己的类实现Cloneable接口,这个类必须重写clone方法,如下例所示: Object类中的clone方法的定义如下: 关键字native表示这个方法不是用java写的,但运行在本地平台的JVM上。为了使得clone方法能够在任何地方被使用,需要重写并扩大它的可见性为public。既然clone方法在本地平台上运行,那么在House类中重写这个方法也仅简单的调用了它父类的clone方法,当然也可以在调用父类的clone方法之后添加客户自己的有关克隆操作。可以创建一个House对象,并克隆它,如下所示: 注意:如果House不重写clone方法,程序会有语法错误,因为clone方法是protected的方法,如果House不实现Cloneable接口,在调用clone方法时会产生异常。 14.8 接口和抽象类比较 接口的使用或多或少和抽象类相似,但它们的定义方式不同,如下表总结了二者的不同。 接口可以使用extends关键字来继承其他接口,这个接口称子接口。类只允许单继承,但接口可以多重继承,如下图所示: 一个类要实现NewInterface接口必须实现NewInterface,Interface1…InterfaceN中所有的方法。一个接口可以扩展其他接口,而不是实现它。类可以继承它的父类并实现多个接口。 所有的类都共享同一个根类,Object类,但对于接口,没有但一个的根类。和类一样,接口也定义类型。 一个接口类型的变量可以指向任意一个实现了这个接口的类对象实例。如果一个类实现了一个接口,那么这个接口就如同这个类的父类。可以使用接口作为数据类型或强制一个接口变量转换成它的子类,反之亦然。 例如,假设c是Class2类型实例,c也是Objcet,Class1和Interface1,Interface_1, Interface_2, Interface2_1和Interface2_2的实例。 注意:类的名字是名词,接口的名字可以是形容词或名词。 设计思想:抽象类和接口都可以规定对象的一般行为。但到底用接口还是抽象类?通常,强烈的is-a的关系,即明确的父子关系被定义为类。较弱的is-a的关系,即所谓的is-kind-of关系,说明对象拥有一个特定的属性,可以被定义(模型化)为接口。 通常,接口优于抽象类,因为接口定义通用的父类型与类没相关性,它比类更灵活。考虑Animal类,假设howToEat方法定义在Animal类中,如下: 则两个Animal子类就要定义如下: 给定这样的继承层次,多态使得Animal类型的对象可以指向Chicken对象也可以指向Duck对象,如下所示: JVM根据实际类型动态决定哪个howToEat方法被调用。 可以定义一个Animal子类,但有限制,它必须是另外一个其他Animal的子类(如Turkey)。 接口就没有这个限制,它更灵活,因为不需要适应任何其他类型。 可以在接口中定义howToEat方法,对于其他类而言,它就是一个通用的超级类型,如图。 14.9 基本数据类型的类封装 Java提供Boolean, Character, Double, Float, Byte, Short, Integer和Long类型来封装基本数据类型,这些类被组织在java.lang包中,继承层次如图: 每个包装类都要重写Object的toString方法和equals方法,同时也要实现Comparable接口的compareTo方法。他们彼此相似,Boolean类包装了2个Boolean值true和false。如下图是Integer类和Double类的关键特征。 可以使用一个基本类型的数据或一个数字串来创建一个包装类对象,例如,new Double(5.0), new Double(“5.0”)。 包装类没有无参数的构造方法,所有包装类都是immutable类,这就意味着,一旦一个包装类对象被创建,它的内部数值是不会变的。每一个数值包装类都有常量MAX_VALUE和MIN_VALUE,如下代码。 每个包装类都要实现抽象方法doubleValue, floatValue, intValue, longValue和shortValue,这些抽象方法定义在包装类的父类抽象Number中。同时包装类还有一个非常有用的静态方法valueOf(String s),这个方法创建一个由特定数值串代表的对象,例如。 可以在Integer包装类中使用parseInt方法把字符串转换为int类型数值,其他类型
您可能关注的文档
- 种类繁多的动物126.ppt
- 科学家用什么方法证明全球变暖.doc
- 秋天的雨_ABC育网.ppt
- 科学技术史历年试题.doc
- 科学抗旱保丰收.doc
- 科学的迷信与迷信的科学.doc
- 科学把握人生的方向和道路.ppt
- 科室管理条例.doc
- 科学系统的学习方法.doc
- 科学饮茶常1.doc
- 2024年度党员干部民主生活会班子对照检查材料.docx
- 公司党委领导班子2024年度民主生活会对照检查材料4个带头方面.docx
- 市府办(政府办)领导班子2024年民主生活会会后综合情况报告.docx
- 在2025年市司法局信息宣传工作推进会上的讲话.docx
- 在2025年全省文化旅游高质量发展推进会上的讲话.docx
- 在2025年全区工业、住建大规模设备更新推进会上的讲话.docx
- 党支部2024年组织生活会民主评议党员情况总结报告_1.docx
- 2024年度组织生活会个人对照检查剖析材料.docx
- 镇党委书记2024年度民主生活会对照检查材料1.docx
- 党支部2024年组织生活会民主评议党员情况总结报告.docx
最近下载
- 小学二年级下册数学解决问题练习题.pdf VIP
- 2025年食品安全知识考试题库及答案.docx VIP
- 中职英语(高教版)基础模块一Unit6 Food and Drinks Listening and Speaking-优质教学课件PPT.pptx VIP
- 通过戏剧教育提升学生审美能力的研究教学研究课题报告.docx
- 年产运动鞋 400 万双项目环境影响报告表(2021年新版环评).pdf VIP
- 理光MPC3004 3504 4504 6004SP维修手册.pdf VIP
- 院感知识培训课件手卫生.pptx
- 居家用电安全知识ppt课件(完整内容).pptx VIP
- 2025年宜春职业技术学院单招职业适应性测试题库及一套完整答案.docx VIP
- 课题开题报告:新质生产力驱动下技能竞赛优化五育融合育人模式的实践研究.docx VIP
文档评论(0)