- 接口中的所有方法自动的被声明为public
- 接口可以多继承
- 接口绝不能含有实例域,但可以包含常量,接口中的域将自动地被设置为public static final
- 虽然不能构造接口的对象,但能声明接口的变量: Comparable x=new Employee();接口变量必须引用实现了接口的类的对象,可用instance检查一个对象是否实现了某个特定的接口
- 在javaSE8中,接口新增了默认方法这个特性。什么是默认方法?简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法。只需在方法名前面加个default关键字即可。 为什么要有这个特性?首先,之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改全部实现该接口的类
- 在具体的类实现接口中,默认方法不是必须实现,但抽象方法必须实现,如果一个接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型相同的方法,必须覆盖这个方法来解决冲突,用接口名.super.方法名(); 的方式显示调用需要的方法
class Student implements Person,Named//这两个接口都有getName()方法 { public String getName(){ return Person.super.getName(); } }
- 一个类继承了一个超类,同时实现了一个接口,并从超类和接口继承了相同的方法,在这种情况下,只会考虑超类方法,接口的所有默认方法都会被忽略