接口在java中起到了一个标准的作用,也就是说我可以声明一个接口,之后任何人都可以实现这个接口,而编程人员则可以只通过这个接口来声明变量,举个例子:
比如常用的接口List,这个接口一般是用来获取列表的,他其中声明了一些方法,而Vector,ArrayList则实现了这个接口,那么在一个应用中我们就可以这样来做
List list=Service.getList();
在这条语句中,我们使用List获取的列表对象,那么我们有没有想过,在方法getList()中,我返回的是个什么类型呢?Vector?ArrayList?或者其他自己实现了List接口的类型,对于大部份人来说不用管这些,因为他们需要做的工作就是通过调用getList()这个方法来获取列表,至于返回的到底是哪一个类的对象,他们是没必要关注的。
那么当以后负责编写getList()这个方法的人觉得里面好像有点问题,要修改一下,于是这一次getList()方法返回了一个自定义的DavidList,DavidList这个类也是实现了List接口的,那么这一切都符合程序设计的逻辑,而其他的只使用这个方法的人并不知道里面修改了,他只知道我只要用List就可以获取列表,才不管里面返回的是个什么对象呢。
这样,List接口无形中就成为了一个标准,用来通过getList()获取列表的标准。
当然,如果你看过一些入spring,hibernate之类的框架源码,对接口的理解肯定会更加深刻。