Java中接口的作用

接口

通俗解释

比如说你放假出去旅游,玩了一上午,很饿,突然看到前面有个店铺,上面挂着KFC,然后你就知道今天中饭有着落了。
KFC就是接口,我们看到了这个接口,就知道这个店会卖炸鸡腿汉堡(实现接口)。
那么为什么我们要去定义一个接口呢,这个店可以直接卖炸鸡腿啊(直接写实现方法),是的,这个店可以直接卖炸鸡腿,但没有挂KFC的招牌,我们就不能直接简单粗暴的冲进去叫服务员给两个炸鸡腿了。
要么,我们就要进去问,你这里卖不卖炸鸡腿啊,卖不卖汉堡啊(这就是反射)。很显然,这样一家家的问实在是非常麻烦(反射性能很差)。
要么,我们就要记住,南大红门路15号卖炸鸡
,西城区宣武门东大街24号越卖炸鸡(硬编码),很显然这样我们要记住的很多很多东西(代码量剧增),而且,如果有新的店卖炸鸡腿,我们也不可能知道(不利于扩展)。

为什么需要

接口是一种规范
统一标准的目的,是大家都知道这个是做什么的,但是具体不用知道怎么做
软件开发大多是一个协作性的工作:有了接口大家就能分头开干,都按照接口来办事,各自做完就能轻松地整合到一起。各部分的测试也更加方便。

什么时候需要通过接口建立规范

为了抽象系统的某种公共行为,或者封装变化性,进行系统设计的时候你需要抽取出接口,这样将来你的系统将更加灵活。

所以面向对象的大神们孜孜不倦地教导我们说:接口和实现分离,面向接口编程。

最后推荐一篇Java接口的基础教程:抽象类与接口