选择Java接口还是抽象类
更新时间:2024-04-08 14:00: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接口还是抽象类04-08
企业话务员内训考试试卷12-13
1-公司行政管理体系文件(V2013)08-10
深入认识翡翠05-15
白庄煤矿地质类型划分报告 - 图文10-18
图文并茂VLAN全接触04-02
第一部分__微观经济学习题05-28
STAADPRO使用统一规定07-27
夹 竹 桃(详)12-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 抽象
- 接口
- 选择
- 还是
- Java
- 职中高二期语文试卷- 副本
- 苏教版四年级下册语文每课一练(修改稿)
- Color Finesse 3调色插件使用教程 - 图文
- 英语学习
- 睡岗管理制度
- 水族知识
- 抑郁自评量表(Self-rating - depression - scale - SDS)
- 安徽省教育厅人文社会科学研究项目管理办法
- 律所风险告知及规范服务承诺书
- 仪表施工方案
- 贝雷片施工便桥方案
- 环境化学课后作业
- 工商管理专业人才培养的几点思考
- 吉林省吉林市普通中学2018-2019学年高三毕业班第一次调研测试题
- 云南甜玉米种植调查报告
- 第三季度粮情分析报告
- 城市更新治理模式政策利弊及原因分析 基于广州深圳佛山三地城市
- 无线WIFI传输pm2.5温湿度检测仪AS0156-K5W手册 - 图文
- 2006江苏高考物理试题及答案
- 实验二运算器实验解读