选择Java接口还是抽象类
更新时间:2024-01-22 23:09:01 阅读量: 教育文库 文档下载
什么时候使用接口?什么时候使用抽象?选择Java接口还是抽象类 (转)
interface关键字用来声明一个接口,它可以产生一个完全抽象的类,并且不提供任何具体实现。interface的特性整理如下:
1. 接口中的方法可以有参数列表和返回类型,但不能有任何方法体。 2. 接口中可以包含字段,但是会被隐式的声明为static和final。
3. 接口中的字段只是被存储在该接口的静态存储区域内,而不属于该接口。 4. 接口中的方法可以被声明为public或不声明,但结果都会按照public类型处理。 5. 当实现一个接口时,需要将被定义的方法声明为public类型的,否则为默认访问类型,Java编译器不允许这种情况。
6. 如果没有实现接口中所有方法,那么创建的仍然是一个接口。
7. 扩展一个接口来生成新的接口应使用关键字extends,实现一个接口使用implements。 interface在某些地方和abstract有相似的地方,但是采用哪种方式来声明类主要参照以下两点:
1. 如果要创建不带任何方法定义和成员变量的基类,那么就应该选择接口而不是抽象类。 2. 如果知道某个类应该是基类,那么第一个选择的应该是让它成为一个接口,只有在必须要有方法定义和成员变量的时候,才应该选择抽象类。因为抽象类中允许存在一个或多个被具体实现的方法,只要方法没有被全部实现该类就仍是抽象类。
以上就是接口的基本特性和应用的领域,但是接口绝不仅仅如此,在Java语法结构中,接口可以被嵌套,既可以被某个类嵌套,也可以被接口嵌套。这在实际开发中可能应用的不多,但也是它的特性之一。需要注意的是,在实现某个接口时,并不需要实现嵌套在其内部的任何接口,而且,private接口不能在定义它的类之外被实现。 最后写点自己的认识:
这个问题面试的时候也会很多人问起,有过设计方面的工作内容的人和没有过类似设计的人的回答还是有所不同的,再结合一些其他类似的问题,面试官假如有心的话还是能看出来一个人之前的工作内容的状态。
最后再加上thinking in java中对接口使用原因最根本的指出:为了能够向上转型为多个基类型以及由此而带来的灵活性。
当然使用接口还有个原因是和抽象类相同的:防止客户端程序员创建该类的对象,并确保这仅仅是个建立一个接口。
所以:接口和抽象类,怎么选?当我们确定某个事物应该成为一个基类的话,接口是第一选择
java的接口与抽象类的使用
很多人有过这样的疑问:为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种。
实际上接口和抽象类的选择不是随心所欲的。 要理解接口和抽象类的选择原则,有两个概念很重要:
对象的行为和对象的实现。如果一个实体可以有多种实现方式,则在设计实体行为的描述方式时,应当
达到这样一个目标:在使用实体的时候,无需详细了解实体行为的实现方式。也就是说,要把对象的行为和对象的实现分离开来。既然Java的接口和抽象类都可以定义不提供具体实现的方法,在分离对象的行为和对象的实现时,到底应该使用接口还是使用抽象类呢?
通过抽象类建立行为模型
在接口和抽象类的选择上,必须遵守这样一个原则:行为模型应该总是通过接口而不是抽象类
定义。为了说明其原因,下面试着通过抽象类建立行为模型,看看会出现什么问题。
正在阅读:
选择Java接口还是抽象类01-22
详细设计说明书(范例).doc09-04
兰大网院17春健康评估课程作业 - A12-01
公共政策学名词解释、案例考点汇总07-07
全国幽门螺杆菌感染处理共识报告05-11
东京轨道交通系统11-02
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 抽象
- 接口
- 选择
- 还是
- Java
- 贝雷片施工便桥方案
- 2015年山东省木工B标准考试题
- 智慧树无处不在的传染病试卷综合答案
- 无法引用Microsoft.Office.Interop.Excel(word)的解决
- 风险管理-风险评估技术(ISO 31010对应的GB)
- 中国法律服务市场需求与发展战略规划分析报告2018年版(目录) - 图文
- 云南甜玉米种植调查报告
- 企业 公司人力资源部员工考试试题及答案 精品
- T梁预制及安装专项施工方案
- 吉林省吉林市普通中学2018-2019学年高三毕业班第一次调研测试题 数学(理) Word版含答案
- 环境化学课后作业
- 大学生消费观调查报告
- 后勤人员安全责任书
- 阜阳市2014年初中化学、生物、物理实验操作考试试卷
- git、gerrit的使用方法和规范
- 22章二次函数2 - 图文
- 2015-2020年中国环境防护用核辐射剂量监测报警仪器行业市场调查及投资运行态势报告 - 图文
- 中教高级一级职称评定讲课答辩题目及答辩人答题要点
- 示范村卫生室一览表内容
- 设备检查手册 - 图文