接口是一种用来定义程序的协议,它用于描述类或结构的一组相关行为。
接口中不实现任何业务逻辑,业务逻辑由接口的实现类来完成。
在Java中,使用接口的目的是克服单继承的限制,因为一个类只能由一个父类,而一个类可以同时实现多个父接口。接口中除了抽象方法(static修饰)外,还可以定义默认方法(default修饰)和静态方法(static修饰)。
1.接口的定义:使用interface声明
[public] interface 接口名称{
[public][static] [final] 数据类型 常量名 = 常量; //常量被定义后不能被改变
[public] [abstract] 返回值数据类型 方法名(参数列表) ; //可以定义抽象方法
[public] static 返回值的数据类型 方法名(参数列表){ };//可以定义静态方法
[public] default 返回值的数据类型 方法名(参数列表){ };
}
注意:1)接口中的变量默认使用使用public static final进行修饰,即全局变量
2)接口中定义的抽象方法默认使用public abstract修饰,没有方法体
3)编写接口中的方法不管省不省略,永远是public
4)接口本身不能被实例化,接口中的抽象方法和默认方法只能通过接口实现类的实例对象尽进行调用。实现类通过implements实现接口,
5)实现类必须重写接口中所有抽象方法(否则编译器会报错)
6)一个类可以同时实现多个接口,多个接口名需要用英文逗号隔开
例如: 修饰符 class 类名 implements 接口1,接口2,.......{
}
在Java中,接口不允许继承抽象类,但允许接口继承接口,并且一个接口可以继承多个接口
例如:interface A extends B,C{
}