接口,英文interface,拆开看就是inter 和 face
inter 有互相的意思,其含义强调两方的交互。
face 面,对应的是点和线。很形象的体现了功能的多样性。可以看作是多个功能点的集合组成的一个功能面,通过它可以与多个功能点进行交互。但是功能点有很多,哪些才是属于一个面的?接口的定义是:接口是一组相关的交互功能点定义的集合。这就解释了如何去划分哪些功能点是一个面的。
接口强调的是双方的交互,如果只有一方,那么就不是交互了,也就不存在接口。
接口的功能点只是定义,不涉及具体的实现。USB接口可以接键盘、鼠标、散热风扇等,只要设备符合USB的协议标准,那么都可以对接USB接口。
有了类之后为什么还要有接口?
例如,你想操作人的时候用Person,想操作猪的时候用Pig。但是有时你可能不知道操作的对象具体是什么,仅知道他能干什么。那么只要实现了接口的类,无论它是什么类,他都有统一的行为。就可以操作它,而不必知道它到底是什么,只需关心它有没有提供符合接口的功能。