一、定义
接口是一系列方法的声明。只有方法的声明,没有方法的实现,它的方法全部是抽象方法,可以在不同的地方被不同的类实现。
接口定义:
[public] [static] interface <接口名>{
[public] [final] 类型标识符 符号常量名 = 常数;
[public] [abstract] 返回值类型 方法名 ([参数列表]);
...
}
接口中的成员变量默认是public static final类型的。可以省略不写
接口中的方法默认是public abstract类型的,无方法体,不可实例化。可以省略不写
例如:定义Usb接口
interface Usb{
int A = 10;
void service();
}//省略了所有访问控制符
等同于
public interface Usb{
public static final int A = 10;
public abstract void service();
}
二、接口的特点
1、接口中没有构造函数,不能实例化
2、接口中的所有方法都是抽象方法
3、必须通过类来实现它的抽象方法
4、一个接口不能实现(implements)另一个接口,但是可以继承多个其它的接口
5、不允许实例化,允许定义接口类型的引用变量,来引用实现了该接口的实例(类似向上转型)
6、一个类只能继承一个直接父类,但可以实现多个接口,相当于多继承
三、接口的实现
接口的实现使用关键字 (implements) 多个接口使用" , " 分隔
Public interface Usb{
Void service();
}
Public class UDisk implements Usb{
Public void service(){
System.out.print("插入了U盘!");
}
}
public class Test{
public static void main(String[] args) {
Usb usb = new UDisk();
usb.service();
}
}
三、为什么需要接口
1、免除重复定义
例如对于吃东西的这个方法 eat();动物可以吃,人可以吃,有的植物可以吃,机械可以吃,只是吃的方式不同,可以定义接口
interface Eat{
void eat();
}
当需要时直接实现这个接口就可以了,可以免除重复定义
2、方便扩展