1. 一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
2. 接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个实现此接口的对象。
3. 接口没有构造方法
4. 接口中每一个方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错 //1.8以前)
5. 接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)
(接口中只能包含常量和静态方法)
速记: so f|ar to progress
6. 接口中的方法不能有方法体,就是能实现方法的具体功能。
7. 一个类却可以实现多个接口。
9. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法) //1.8以前
//1.8后接口增强(重点)
10. 接口中可以添加使用default关键字修饰的非抽象方法,同时也说明接口方法不一定得是abstract
11. 接口里可以声明静态static方法,并且可以实现。
标记接口
没有任何方法的接口被称为标记接口
用途:
1. 建立一个公共的父接口
2. 向一个类添加数据类型
例如:Serializable、RandomAccess
函数式接口
也叫功能性接口(functional interface),即只包含一个方法的接口