1.1 定义接口
接口里可以定义哪些内容:
抽象方法、默认方法和静态方法(JDK8)、私有方法(JDK 9)
1. 定义抽象方法,接口里定义的抽象方法默认被 public abstract 修饰
2. 接口里定义的成员变量默认都是被 public static final 修饰
3. JDK8以后还可以使用关键字default 定义有方法体的默认方法
4. JDK8以后还可以在接口里定义 静态方法
5. JDK9以后还可以在接口里定义 私有方法
接口的特点:
- 接口里定义的方法默认被public abstract 修饰,是抽象方法,不能有方法体
- 接口不能直接创建实例对象
- 除非使用匿名内部类实现抽象方法,或者创建一个子类,在子类实现抽象方法,并创建一个子类对象。(和抽象类一样)
- 使用关键字extends 继承类,使用关键字implements 实现接口
- 一个类如果实现了接口,就必须哟实现接口里所有的抽象方法,否则这个类要定义为抽象类
- 一个类可以实现多个接口
- 接口之间可以继承,并且接口支持多继承(较少使用)
public interface A extends B,C
- 接口里不能定义构造方法
- 接口李不能有静态代码块
默认方法相当于允许给接口的抽象方法给出默认实现了,这样实现类(子类)既可以选择使用默认实现,还可以选择重写,更灵活了
【修饰符】 interface 接口名{
//接口的成员列表:
// 静态常量
// 抽象方法
// 默认方法
// 静态方法
// 私有方法
}
interface Flyable{
//静态常量
(public static final) long MAX_SPEED = 7900000;//这里单位是毫米/秒,7.9千米/秒,超过这个速度,就变成卫星
//抽象方法
(public abstract) void fly();
//默认方法
(public) default void start(){
System.out.println("开始");
}
(public)