接口是什么?
我们从身边的简单例子来讲起。我们都用手机,几乎所有手机都会配有一个充电口,手机如果需要充电,只需要把充电线插到充电接口里就行了。我们都知道,现在充电技术非常发达,有很多种类的快充技术。但是对于快充技术而言,是需要充电头、充电线、手机都支持才行。我们假定充电头和手机是都支持快充的,那么对于不同的充电线:普通的线和快充的线,在充同一个手机的时候肯定充电速度是不一样的。
在上面的例子中,我们提到了三样东西:手机、充电口和不同的充电线。我们都知道,手机的充电原理是通过插在充电口上的充电线,将电充到手机里。我们也可以这样说:手机通过充电口充电,充电口通过充电线实现可以充电的功能。那么在这句话中,我们可以把手机看作是一个应用,充电口看作是一个接口,充电线看作是一种接口的实现,那么接口其实就是给应用提供某种功能的东西。不同的充电线插在充电口上,都能让充电口实现充电功能,那么我们可以称不同的充电线为充电口的不同的接口实现。
我们现在的主流手机分为两种,一种是苹果手机,一种是安卓手机。苹果手机和安卓手机都有充电口,那么苹果手机和安卓手机的充电口可以随意调换吗?显然是不可以的,因为不同的充电口有不同的规范。那么对于接口而言,每一个接口其实也有自己的规范。
现在我们总结一下,接口是什么。接口就是一类抽象的方法,它有规范,可以提供功能,它的功能可以使用不同的符合规范的办法进行实现。