含义
接口,从微观来说,接口就是一个功能,从宏观来说,接口就是一种规则。
例如一个usb接口,从微观来说,它具有连接外接设备的功能,电脑上拥有几个usb接口就可以连接几个外接设备。从宏观的角度来说,usb是一种规则,所有符合usb规则的设备都可以和同样遵守usb规则的电脑连接。
如何定义一个接口
定义接口的语法:
访问权限修饰符 interface 接口名 extends 接口1,接口2,接口3.....接口n{
}
接口的组成
接口中可以有以下内容。
- 公共静态常量
- 公共静态方法
- 公共抽象方法
- 由default修饰的普通方法
接口的使用
1,多实现
多实现是指一个类可以实现多个接口
语法:
访问权限修饰符 修饰符 class 类名 extends 父类名 implements 接口1,接口2,接口3....接口n{
}
注意点:
- 一个类实现接口时,将会继承这个类中的公共静态常量,公共抽象方法,由default修饰的普通方法,同时必须重写所有公共抽象方法。
- 一个类实现多个接口,多个接口中有多个相同的方法,这个类必须重写这个方法。
2,多继承
多继承是指一个接口可以同时继承多个接口
语法:
访问权限修饰符 interface 接口名 extends 接口1,接口2,接口3...接口n{
}
注意:
- 一个接口继承多个接口,这个接口将会继承父类接口中除公共静态方法之外的所有方法和属性。
- 一个接口继承多个接口,如果多个接口中有重复的相同方法,这个必须重写这些方法。
- 一个接口继承多个接口,如果多个接口中有重复相同的抽象方法,子接口将会将这些相同的抽象方法合并。
接口的特殊使用:
1,常量接口
常量接口是全部内容为由公共静态常量组成的接口。一般用于如:服务器响应状态码,异常码等特殊情况。
2,接口回调
接口回调的本质就是将一个接口对象传递出去,对方在满足特定的条件之后再回来执行这个接口对象中的方法。
正常情况下,我们将本地对象作为实参传给某个远程对象中的某个方法之后,这个方法就会立即执行,如果需要调用本地对象中的一个方法或属性,在调用远程对象中的这个方法之后就会立即调用我们本地对象中的方法。
但是接口回调再讲本地对象传输给远程对象之后,远程对象并不会立即调用本地的对象中的属性和方法。而是在满足特定的条件之后才会调用本地的方法和属性,这种机制类似于我们添加了一个监听器。
举例:
我们现在要往数据库中插入大量的数据,需要消耗一定的时间,但是插入成功之后没有提示,所以我现在想在插入数据完成之后给我们一点提示,或者在数据库插入数据完成之后执行我们想要执行的代码。
这时,我们可以先写好插入数据完成之后我们要执行的代码。然后将这部分代码传出去,并设定好,如果插入数据完成,就执行这些代码。
在这个例子中,我们将代码发过去之后并不会立即执行,而是要等到特定条件——插入数据完成之后才会执行,这就是接口回调。