1.理解:

接口就是一个公共的规范标准
接口是一种应用数据类型,最重要的是:抽象方法

2.接口的定义

格式:

public interface 接口名 {
       //...
  }

3.接口的抽象方法

public abstract 返回值类型 方法名 ();

固定的修饰符:public abstract
关键字修饰符,可以选择性省略
例:

public abstract void abs();
  public void abs();
  abstract void abs();
  void abs();

4.接口的调用

接口不能直接使用,必须有一个实现类来实现该接口
格式:

   public class 实现类名称 implements 接口名称{
     //....
   }

注意:实现类必须必须覆盖重写接口中的所有方法
调用时不能直接new接口,必须通过实现类调用
如果实现类没有覆盖接口中的所有抽象方法,那么这个实现类必须是一个抽象类

5.接口的默认方法(所有Java版本均可用)

作用:解决接口的升级问题
特点:在实现类中可以不用覆盖重写默认方法,需要时也可以在主类中重写
在主类中通过任何一个实现类可以直接调用
格式:

public default 返回值类型 方法名 (参数列表) {
        //方法体
  }

6.接口的静态方法(Java 8 可用)

格式:

public static 返回值类型 方法名 () {
        //方法体
  }

注意:不能通过接口实现类的对象来调用接口中的静态方法
调用静态方法
格式:
接口名称.静态方法名(参数)
关键字:static

7.接口的私有方法 (Java 9 可用)

普通私有方法:解决多个默认方法之间的重复代码问题
格式:

private 返回值类型 方法名 (参数列表) {
        //方法体
  }

静态私有方法:解决多个静态方法之间的重复代码问题
格式:

private static 返回值类型 方法名 (参数列表){
           //方法体
  }

8.接口的常量定义与使用

注意:必须使用public static final 这三个关键字,关键字可以省略
接口中的常量,必须赋值
接口中常量名称,推荐使用完全大写形式
格式:

public static final 数据类型 常量名称 = 数据值 ; 

一旦使用final关键字,说明不可改变

9.实现继承并多个接口

格式:

public class 子类名 extends 父类名 implements 接口1,接口2,....{
       //覆盖重写所有方法
  }

注意:如果实现类中所实现的多个接口中,存在重复的抽象方法,仅需覆盖重写一次即可
如果实现类没有覆盖重写所有接口的抽象方法,那么实现类就必须是一个抽象类
如果实现类实现多个接口的多个重复的默认方法,那么实现类一定要对冲突的默认方法进行重写
如果一个类的父类的方法与接口中的默认方法产生冲突,那么优先调用父类的方法

10.接口之间的多继承

类与类之间是单继承,直接父类只有一个
类与接口之间是多实现,一个类可以实现多个接口
接口与接口之间是多继承
多个父接口中的默认方法如果重复,那么子接口必须进行默认方法的覆盖重写(并且带有default关键字)

Last modification:May 29th, 2020 at 02:06 pm
如果觉得我的文章对你有用,请随意赞赏