首页 > 大神,请问接口的作用什么?

大神,请问接口的作用什么?

java中接口中定义的方法都是一些规范,并没有实现,当实现这个接口的时候我们仍然需要去实现接口中的方法,既然如何,我们为什么不抛开接口呢?虽然我知道接口肯定是有用的


规范 就这俩字


楼上说的都很对,我说下我这用的另一个场景。

接口写的增删改查方法,但数据库有mysql和oracle,只要对同一接口实现mysql和oracle两种,调用的时候注入不同的实现就可以无痛切换数据源了。


我这里有个个人觉得比较好理解的关于接口的总结:接口到底有什么用


最上面的是在扯淡。
接口是JAVA为了实现类似C++里面的多继承的一种妥协方案。

比如,有接口A,然后B、C、D都实现了接口A。
就类似于B、C、D都继承了抽象类A,都可以调用A中定义过的方法。
比如需要对B、C、D的对象做类似的操作,就可以写出类似的代码。
甚至可以把类似的代码抽象封装成函数,类等等。
传递参数的时候,可以把类型写成A,那么B、C、D类的对象就都可以传递进来。
各种。

总之,接口不是为了规范产生的,它的好处也不是什么规范,而是尽量抽象,减少重复的代码
(说的装逼一点,叫更加符合面向对象的思想blabla……)
(另外,不规范都是程序员的问题,接口并不能拯救世界。)

实现类似的效果,只有两种方案:
方案1:B、C、D都继承于A。
方案2:B、C、D都实现A的接口。
但是很明显,JAVA不支持多继承……于是只能用方案2,实现多个接口……
所以你懂的,接口是很必要的。

【回复1】写在这里比较清晰:
请问为什么需要函数呢,直接写代码不行吗?
请问为什么需要类呢,直接写函数不行吗?
当然可以!
但是用了函数和类,可以为你减少重复的代码啊。

你在考虑用继承或者接口的前提,一定是要“ B,C,D具有相同或者类似的行为,可以整合到一起 ”。
接口可以让你的B、C、D类的对象都可以当做同一个类型(A接口)的参数到处传递,做相同的操作。
(也就是说,比如B继承Y,又实现了Z,那么B既可以当做Y类型的参数,又可以当做Z类型的参数)
合理利用可以减少重复代码。。。
合理利用可以减少重复代码。。。
合理利用可以减少重复代码。。。
重要的话说3遍。

考虑 JAVA 8(JDK1.8)里,接口已经可以自带默认的实现了。
也就是说,如果你的B、C、D做的操作是一样的,那么直接实现A接口然后啥都不用写了。
改的时候也只需要改一个地方就OK了。
(等效于多继承,B可以实现A接口,S接口,X接口……)

【回复2】写在这里比较清晰:

如上图,这个构造函数的参数允许是java.util.List(这是一个接口)。
于是,实现了这个接口的,比如ArrayList,LinkedList,Vector,Stack等等就都可以作为参数传递进去。

如图,不管ObjectList具体是什么类型的,因为它实现了List接口,所以都可以用ObjectList.size()来获取元素个数。

上面这个例子就可以说明:
一个函数就可以处理ArrayList,LinkedList,Vector,Stack等等各种类型的参数。
而不需要为每一个类型都写一个构造函数
因为,有接口。


如果没有USB标准,那么DELL开发的USB驱动,加载USB的方法名字叫loadUSB(), HP开发的USB驱动,加载USB的方法名叫loadHPusb()等等,如果有1万家厂商,其中就因为一个方法的命名不同,写操作系统的那些人,如果想加载一下USB驱动,请问需要怎么调用加载驱动的方法?


以上说法参考java编程思想


我认为:
软件设计人员统一规范接口,开发人员按照接口进行开发,这样便于管理和维护程序

假如你按照自己逻辑写代码 如果你离职了 你的代码需要维护,其不是坑死了

【热门文章】
【热门文章】