定义
抽象类是从多个类中抽象出来的模板,如果将这种抽象进行得更彻底,则可以提炼出一种更加特殊的”抽象类“——接口(interface)。
接口里不能有普通方法,接口里的所有方法都是抽象方法。
Java 8对接口进行了改进,允许在接口中定义默认方法,默认方法可以提供方法实现。
规则
1、 接口名应该与类名采用相同的命名规则;
2、 一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类;
3、 由于接口定义的是一种规范,因此接口里不能包含构造器和初始化块定义。接口里可以包含成员变量(只能是静态常量)、方法(只能是抽象方法、类方法或默认方法)、内部类(包括内部接口、枚举)定义;
4、 在接口中定义成员变量时,不管是否使用public static final修饰符,接口里的成员变量总是使用这三个修饰符来修饰。而且接口里没有构造器和初始化块,因此接口里定义的成员变量只能在定义时指定默认值;
5、Java 8允许在接口里定义默认方法,默认方法必须使用default修饰,该方法不能使用static修饰,无论程序是否指定,默认方法总是使用public修饰——如果开发者没有指定public,系统会自动为默认方法添加public修饰符,由于默认方法没有static修饰,因此不能直接使用接口来调用默认方法,需要使用接口的实现类的实例来调用这些默认方法;
6、Java 8允许在接口中定义类方法,类方法必须使用static修饰,该方法不能使用default修饰,无论程序是否指定,类方法总是使用