- 接口中不能含有实例域(方法、变量)
- 接口中所有的方法属于public,声明时不用提供关键字public
- 接口中的域自动设置为public static final
- 使用instance关键字可以检查一个对象是否实现了某个特定的接口
- 每个类只能有一个超类,但是可以实现多个接口(Java通过接口实现了“多重继承”)
- 接口中允许增加静态方法
- 接口中用default修饰符标记的方法可以提供一个默认实现,这样做的好处时,当实现这个接口的类不需要这个方法的功能时,可以不用重新实现它。
- 默认方法可能会产生冲突,为此Java指定了两个解决冲突的规则:
- 超类优先:如果超类提供了一个具体方法,子类实现的接口中同名具有相同参数类型的默认方法会被忽略;
- 接口冲突:当一个类实现了两个接口,这两个接口具有同名且同参数类型的方法,必须在这个类中覆盖这个方法。
- 任何接口中一定不要定义Object类中的某个方法,因为一旦发生冲突,它的优先级绝对无法超越Object类中对应的方法