要了解Java接口的特性,首先要知道接口不仅仅是Java语言。 接口是实体向外部提供的抽象的,也就是另一个实体。 这是为了通过内部操作隔离外部交流方式,使其能够在内部进行修改,而不影响与外部其他实体的交互。
用Java看界面,首先能想到的可能是c的多重继承和Java的另一个关键字abstract。 从另一个角度来看,多重继承是接口的一项功能,通过接口的存在,可以将Java中的对象升级为多个基本类型。 此外,与抽象类一样,接口不允许创建对象,因此可以防止其他用户创建该类的对象。
Java使用接口关键字来生成完全抽象的类,并声明不提供具体实现的接口。 接口的特性如下。
1 .接口中的方法有参数列表和返回类型,但没有方法主体。
2 .接口可以包含字段,但隐式声明为静态和final。
3 .接口中的字段只是存储在接口的静态存储区中,而不是接口的一部分。
4 .接口中的方法可以声明为公共,也可以不声明为公共,但结果按公共类型处理。
5 .实现接口时,必须将定义的方法声明为公共类型。 如果不声明,则为默认访问类型。 Java编译器不允许这样做。
6 .如果接口中的所有方法都没有实现,则创建的仍然是接口。
7 .要扩展接口以生成新接口,必须实现使用关键字extends和implements的接口。
8 .接口中的方法是抽象方法(abstract ),不应该是静态方法。 接口的所有方法都是抽象的,而抽象方法没有静态,有静态的方法不能override,这样定义接口就有意义了。
在Java8中,接口有新功能。
1 .默认方法:允许接口方法定义默认实现。 子类中的方法不需要实现此方法,而是可以有方法和实现。 缺省方法使用default
关键词修饰。 可以通过实现类对象来调用。 在现有界面中提供新方法的同时,保持与旧版本代码的兼容性。
例如,java 8 API为Collection、List和Comparator等接口提供了丰富的缺省方法。
2 .静态方法:使用静态
关键词修饰。 可以直接从接口调用静态方法并执行该方法主体。 我们经常在互相使用的类中使用静态方法。 可以在标准库中找到一对接口和类,如Collection/Collections和Path/Paths。
以上是为伙伴们总结的Java接口的特性,必须优先考虑自己。 我们只有掌握所有Java接口的特性,才能随心所欲地调用Java接口来实现更多的功能。