Java基础之接口Interface

接口interface

  • 接口就是多个类的公共规范

  • 接口是一种引用数据类型

  • 如何定义一个接口:

    public interface 接口名称 {
             //接口内容
    }
    

接口包含的内容

(Java 7)

  1. 常量
  2. 抽象方法

(Java 8)

  1. 默认方法
  2. 静态方法

(Java 9)

  1. 私有方法

接口使用步骤:

  1. 接口不能直接使用,必须有一个“实现类”来实现接口。

    格式:public class 实现类名称 implements接口名称{...}

  2. 实现类必须覆盖重写(实现)接口中所有抽象方法。

  3. 创建实现类的对象,进行使用。

    ❗ 如果实现类没有实现接口中的所有抽象方法,这这个类必须为抽象类

默认方法的定义

  • 格式:public default 返回值类型 方法名称(参数列表){...}

  • 接口中的默认方法可以解决接口升级的问题

接口的静态方法

  • 定义格式:``public static 返回值类型 方法名称(参数列表){...}`

  • 用法:通过接口名称直接调用其中的静态方法

接口的私有方法

从Java9开始,接口中允许定义私有方法:

  1. 普通私有方法,解决多个默认方法之间重复代码问题

    格式:privata 返回值类型 方法名称(参数列表){...}

  2. 静态私有方法,解决多个静态方法之间重复代码问题

    格式:privata static 返回值类型 方法名称(参数列表){...}

接口中常量的定义

  • 格式:public static final 数据类型 常量名称=数据值
  • public static final 可省略
  • 接口当中的常量必须进行赋值
  • 接口中常量的名称,使用完全大写的字母,用下划线进行分隔(推荐命名规则)

接口的多实现

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

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

    格式:public class 实现类名称 implements 接口1,接口2{...}

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

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

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

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

接口的多继承

  1. 多个父接口当中的抽象方法可以重复
  2. 多个父接口当中的默认方法如果重复,子接口必须进行覆盖重写,且带着default关键字
posted @ 2021-08-16 17:41  夏虫语冰&  阅读(69)  评论(0)    收藏  举报