接口

Wu Jun 2020-01-02 23:43:49
Categories: > > Tags:

1 概念与特性

2 接口与抽象类

2.1 接口与抽象类的区别

2.2 使用选择

1)使用接口
2)使用抽象类

在很多情况下,接口优先于抽象类。因为接口没有抽象类严格的类层次结构要求,可以灵活地为一个类添加行为。并且从 Java 8 开始,接口也可以有默认的方法实现,使得修改接口的成本也变的很低。

3 Java 8 新特性

3.1 静态方法

Java SE 8 中,允许接口中增加静态方法。

3.2 默认方法

Java SE 8 中,可以为接口方法提供一个默认实现。必须用 default 标记。
一个重要用法是“接口演化”,接口中新增的方法有了默认方法就不会影响以前实现这个接口的类。
Java SE 8 之后就不需要伴随类了。

默认方法冲突

如果现在接口中将一个方法定义为默认方法,然后又在超类或另一个接口定义了同样方法。规则如下:

  1. 超类优先。
  2. 接口冲突。必须覆盖这个方法。