Java 25 面向对象--接口

95 阅读2分钟

1 . 接口

接口是一种规则,是对行为的抽象。可以让类去使用。

0936.png

0937.png

1 . 1 接口的定义:

  • 使用关键字 interface 来定义
public interface 接口名{}

1 . 2 接口的实现

  • 接口和类之间是实现关系,通过 implements 关键字表示
public class 类名 implements 接口名{}

注意:

  • 接口和类的实现关系,可以单实现,也可以多实现
public class 类名 implements 接口名1,接口名2{}
  • 实现类还可以在继承一个类时实现多个接口
public class 类名 extends 父类 implements 接口名1,接口名2{}

1 .3 接口的注意事项:

  • 接口不能实例化(不能 new 出来对象)

  • 接口的子类(实现类)

    • 要么重写接口中的所有抽象方法
    • 要么是抽象类

2 . 接口中成员特点(成员变量、成员方法、构造方法)

0938.png

3 . 接口和类之间的关系

0939.png

补充:

  • 类多继承接口时,如果多个接口中有重名方法,会自动合并成一个。
  • 接口继承接口时,需要重写父接口里面的所有抽象方法,或它自己也定义成抽象接口。

4 . JDK8 开始新增的方法

0940.png

4 . 1 允许定义默认方法:

0941.png

4 . 2 允许定义静态方法:

0942.png

静态方法不能被重写,只能是重名。

  • 子类把从父类继承下来的虚方法表里面的方法覆盖了,这才叫重写。(static、final等修饰的都不会被加到虚方法表里面)

4 . 3 允许定义私有方法:

比如我们需要将接口里面方法中重复的代码提出来单独写在一个方法里面。就要定义一个私有的方法,不被外界所调用。

0943.png

  • 普通的私有方法,给默认方法服务。
  • 静态的私有方法,给静态方法服务。

0944.png

5 . 接口的应用

0946.png

5 . 1 接口多态

0945.png

6 . 适配器设计模式

0947.png

  • 当一个接口中抽象方法过多,但是我只需要其中一部分的时候,就可以用适配器模式。

  • 书写步骤:

      - 编写中间类 XXXAdapter,实现对应的接口,对接口中的抽象方法进行空实现(空重写)
      - 让真正的类实现继承中间类,并重写需要用的方法。
      - 为了避免其他类创建适配器类的对象,中间的适配器类用 abstract 进行修饰。