----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
interface:接口,在java用来约定功能。
我们学习接口的过程中,很多老师会用生活中的接口来类比程序中的接口,这样就导致了学习时会产生一些疑惑,下面就是对这些疑惑的解答。
首先回答几个问题:
1.程序中的接口指的是什么?
2.生活中的接口指的是什么?
程序中的接口在程序中用来表示约定功能,表示一种定义,一种抽象,也可以理解为其一个方法定义就是一个规定。
但是生活中的接口指的是什么?
如果要把生活中的接口放到程序中区,它就不是接口了,而是一个个的对象了!
举例来说,电脑的usb接口,就是”usb接口类“的一个对象!
其实,usb接口生产过程中所遵循的那些规定,才是真正的接口!
明白以上的内容之后下面一些常见的疑惑就容易搞清楚了:
1.我电脑上有好几个usb接口,我程序中也可以定义好几个具有usb功能的接口吗?
答:很明显不可以,上面说过,我们在程序中定义接口,实际就是设计规范,设计一个定义出来,有必要重复的去定义(动词)一个定义(名词)吗?
2.我写了一个usb的接口,有数据的读和写两个功能,但是又出来一个苹果的usb设备,这种设备只能读数据,而不能取数据,我能只实现接口中的一个方法吗?
答:不能,接口是设计一种规范,设计规范的时候也要遵循一定的规则,java中规定了接口的实现类必须要实现所有的抽象方法。
问题2总结:接口的实现,在程序中是用类来实现的,而不是对象,既然是这样,就表示实现接口的那中类型的对象,必须可以使用接口中的全部定义,
如果像苹果的usb那样只能写,它不是我们通常意义上的usb,所以它实现我们定义的usb接口是不合适的,我们可以在每个接口中只定义一个 功能,这样就能实现程序的松耦合性。
总结:理解程序中接口的真正内涵,才能搞明白为什么!