使用接口时,需要注意:

1.接口时没有静态代码块或者构造方法的。

使用接口的注意事项_构造方法

使用接口的注意事项_父类_02

2.一个类的直接父类是唯一的,但是一个类可以同时实现多个接口

格式:

public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {

  // 覆盖重写所有抽象方法

}

使用接口的注意事项_默认方法_03

使用接口的注意事项_静态代码块_04

使用接口的注意事项_构造方法_05

3.如果实现类所实现的多个接口中,存在重复的抽象方法,那么只需要覆盖重写一次即可。

使用接口的注意事项_静态代码块_06

使用接口的注意事项_抽象方法_07

使用接口的注意事项_抽象方法_08

4.如果实现类没有覆盖重写所有接口中的所有抽象方法,那么实现类就必须是一个抽象类

5.如果实现类所实现的多个接口中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写

使用接口的注意事项_静态代码块_09

使用接口的注意事项_构造方法_10

使用接口的注意事项_构造方法_11

使用接口的注意事项_静态代码块_12

 6.一个类如果直接父类中的方法,和接口中的默认方法产生了冲突,优先用父类中的方法

使用接口的注意事项_构造方法_13

使用接口的注意事项_父类_14

使用接口的注意事项_抽象方法_15

使用接口的注意事项_构造方法_16

运行结果:

使用接口的注意事项_构造方法_17

 可以看到父类和接口中都有相同的method()方法,优先使用了父类的method()