接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起。

很多JAVA初级程序员对于接口存在的意义很疑惑。不知道接口到底是有什么作用,为什么要定义接口。

好像定义接口是提前做了个多余的工作。下面我给大家总结了4点关于JAVA中接口存在的意义:

1、重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。

2、简单、规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些业务,而且也将命名规范限制住了(防止一些开发人员随便命名导致别的程序员无法看明白)。

3、维护、拓展性:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类。

可是在不久将来,你突然发现这个类满足不了你了,然后你又要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地方可能有引用他,这样修改起来很麻烦。

如果你一开始定义一个接口,把绘制功能放在接口里,然后定义类时实现这个接口,然后你只要用这个接口去引用实现它的类就行了,以后要换的话只不过是引用另一个类而已,这样就达到维护、拓展的方便性。

4、安全、严密性:接口是实现软件松耦合的重要手段,它描叙了系统对外的所有服务,而不涉及任何具体的实现细节。这样就比较安全、严密一些(一般软件服务商考虑的比较多)。

作者:Dion

链接:https://www.zhihu.com/question/20111251/answer/14012223

来源:知乎

能问这个问题,说明(1)你很会思考(2)编程水平还是处于起步阶段。

“接口是个规范”,这句没错。

“不如直接就在这个类中写实现方法岂不是更便捷”,你怎么保证这个接口就一个类去实现呢?如果多个类去实现同一个接口,程序怎么知道他们是有关联的呢?

既然不是一个类去实现,那就是有很多地方有用到,大家需要统一标准。甚至有的编程语言(Object-C)已经不把接口叫 interface,直接叫 protocol。

统一标准的目的,是大家都知道这个是做什么的,但是具体不用知道具体怎么做。

比如说:

我知道 Comparable 这个接口是用来比较两个对象的,那么如何去比较呢?

数字有数字的比较方法,字符串有字符串的比较方法,学生(自己定义的类)也有自己的比较方法。

然后,在另外一个负责对象排序(不一定是数字喔)的代码里面,肯定需要将两个对象比较。

这两个对象是什么类型呢?

Object a,b?肯定不行,a > b 这样的语法无法通过编译。

int a,b?也不行?一开始就说了,不一定是数字。

....

所以,Comparable 就来了。他告诉编译器,a b 两个对象都满足 Comparable 接口,也就是他们是可以进行比较的。具体怎么比较,这段程序不需要知道。

所以,他需要一些具体的实现,Comparable 接口有一个方法,叫 compareTo。那么这个方法就是用来取代 这样的运算符。

因为运算符是编译器保留给内置类型(整数、浮点数)进行比较用的,而不是一个广义的比较运算。

如果你可以明白 JDK 自身库里面诸如 Comparable 这样已经有的接口,那么就很容易理解自己在开发程序的时候为什么需要用到接口了。

java接口有什么用_Java 中的接口有什么作用?好处?相关推荐

  1. java定义接口必用关键字_Java中定义接口的关键字是什么

    Java中定义接口的关键字是什么 Java中定义接口的关键字是"interface"."interface"是面向对象编程语言中接口操作的关键字,功能是把所需成 ...

  2. java加密常用的方法_java中常用接口对接加密方式

    标签: hmac生成码 /** * * @param message 加密的内容 * @param secret 第三方接口提供的密钥 * @return */ private static Stri ...

  3. java接口是类型吗_JAVA中,接口到底是不是类

    从面向对象的角度来说,接口是一个超越了类的共性的描述,不能把它和类混为一谈 举个例子,现在有磁条卡和IC卡的两种银行卡,它们有很多共性,有卡号,基本是个长方形的薄片,有发卡行的标识等等等,这些共性可以 ...

  4. java comparable接口作用_Java 中 Comparable 接口的意义和用法

    一, 为何需要实现Comparable接口 我们知道Collections类中包含很多对实现Collection接口的容器各种操作的静态方法. 当然, 其中最长用的莫过于排序了(Collections ...

  5. java接口那一节是哪的知识_Java中的接口知识汇总

    Java中的接口知识汇总 发布于 2020-4-29| 复制链接 本文给大家汇总介绍了在java中的接口知识,包括为什么要使用接口.什么是接口.抽象类和接口的区别.如何定义接口以及定义接口注意点,希望 ...

  6. java中类的接口是什么_Java中的接口知识汇总

    一.为什么要使用接口 假如有一个需求:要求实现防盗门的功能.门有"开"和"关"的功能,锁有"上锁"和"开锁"的功能. 分 ...

  7. java定义接口的关键字_Java中定义接口的关键字是什么?

    Java中定义接口的关键字是"interface"."interface"是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来装封一定功能的集合 ...

  8. java sdi接口是什么意思_JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

    首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类.Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操 ...

  9. java vector实现的接口_java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析...

    java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异. 首先看一下List接口的的继承关系: list接口继承Colle ...

最新文章

  1. android 常驻进程
  2. 进一步解 apt-get 的几个命令
  3. 杂项题的基本解题思路——2、图片隐写术
  4. micropython oled中文_micropython esp8266+ssd1306(OLED) 显示中文(示例)
  5. 管道抛光防锈机器人_全国首创!嵊州企业的这项防锈技术用在了雪龙号上
  6. 学习linux/unix编程方法的建议[转]
  7. 6.2二叉树及二叉树存储结构
  8. java mongodb 返回所有field_Python爬虫框架:scrapy爬取知乎关注用户存入mongodb
  9. 高德开放平台定位功能对接
  10. 使用Python来调用电脑音响
  11. 微信小程序引入ColorUI
  12. 来自资深程序员的 3 条锦囊:永远不要辞职,除非……
  13. juniper 设备查看光衰的命令
  14. android相关素材以及网站
  15. HC-SR501红外人体传感模块封锁时间调整
  16. [Games 101] Lecture 13-16 Ray Tracing
  17. java面试题系列10
  18. Android:scheme总结(包含data其他部分)
  19. electron-bulider 12 打包出现的问题
  20. C++方式实现餐饮管理系统

热门文章

  1. istringstream,ostringstream和stringstream
  2. 一季度招聘需求稳定,紧缺岗位排行公布
  3. wordpress-技术博客主题推荐
  4. [转载]游戏相关引擎荟萃2
  5. 2021全球城市500强亚洲上榜城市排行榜:中国40个城市上榜,上海和香港跻身进了前十(附年榜TOP154详单)
  6. Messari:从游戏的发展简史及未来发展阐释GameFi
  7. LinearLayout$LayoutParams cannot be cast to constraintLayout.widget$LayoutParam
  8. 【猿说VUE】Vue效果法宝,过渡动画
  9. 多通道高通量实时处理单元详细方案设计报告
  10. 从文本挖掘来解读许巍