通俗的讲,接口其实也是一种规范,规定了一个事物如果想使用这个接口,就必须要实现这个接口里规定的内容,如,USB接口,鼠标就要实现USB接口里的插入,拔出,数据传输等等。
接口的定义与特点
public interface 接口名{
//抽象方法
//常量
}
使用关键字interface
特点
JDK8以前接口里只能有抽象方法和常量
接口不能够实例化,即不能创建对象
接口中的成员默认都是public修饰,写不写都是一样的。
接口的使用方法
接口是被类来实现的,成为实现类,实现类也可以被理解为是接口的一个子类
修饰符 class 实现类 implements 接口1, 接口2, 接口3 , ... {
}
实现的关键字:implements
一个实现类可以实现很多接口,一旦实现接口,就必须实现每个接口的每一个抽象方法,否则这个类必须定义为抽象类。
接口与接口之间是多继承,即一个接口可以继承很多接口。
JDK8开始接口新增的方法
默认方法
类似于普通的实例方法,必须使用default修饰,在使用时,需要实现类的对象来调用。
default int sum(int a,int b){
return a+b;
}
静态方法
使用static修饰,在使用时,必须使用本身的接口名来调用
static int sum(int a,int b){
return a+b;
}
私有方法
就是使用private修饰的实例方法,从JDK1.9才开始有的,使用时,只能在本类中被其他的默认方法或者私有方法使用。
private int sum(int a,int b){
return a+b;
}
并且允许在接口中定义带有方法体的方法。
接口的注意事项
1.接口不能创建对象
2.一个类实现多个接口时,多个接口的规范不能冲突
3.一个类实现多个接口时,多个接口有同样的静态方法时可以的。
4.一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。
5.一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。
6.一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承。