Java学习笔记

接口 interface

2021-05-07  本文已影响0人  想象之中丶意料之外

接口定义:

格式

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

注意事项

public interface DemoInterface {
    // 这个是 抽象方法
    public abstract void f1();
    
    // 这个也是抽象方法
    public String f2();

    // 这个也是抽象方法
    abstract String f3(int i);

    // 这个也是抽象方法
    void f4(int i, char[] chars);
}

接口使用

// 格式
public class DemoInterfaceImpl implements DemoInterface {
      // 实现接口中的所有抽象方法
      @Override
      public void f1() {
            // xxxx
      }
      
      ...
      
      @Override
      public void f4(int i, char[] chars)  {
          // xxx
      }
}

备注

interface类中可以包含的内容有

Java 8 中接口【默认方法、静态方法】

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

Java 9 中接口【私有方法】

  • 格式:
    1、privat static 返回值类型 方法名称(参数列表) { // 方法体 }【静态私有方法,解决静态方法的代码提炼】
    2、public 返回值类型 方法名称(参数列表) { // 方法体 } 【解决默认方法的代码提炼】

接口常亮

  • 注:
    1、使用final 关键字修饰,表示值不可再变
    2、接口中常亮,可以省略 public static final 三个关键字
    3、接口中常亮,一定要在定义时进行初始化【因为java中 static final(静态常亮) 一定要在定义时进行初始化】

总结

  1. 成员变量其实是常量
  2. 接口中最重要的就是抽象方法【注意:实现类必须要覆盖重写接口中所有的抽象方法,除非实现类也是抽象类】
  3. Java8开始,接口允许定义默认方法【注意:默认方法也可以被覆盖重写】
  4. Java8开始,接口允许定义静态方法【注意:静态方法不能通过实现类对象调用,只能通过接口类直接调用】
  5. Java9开始,接口允许定义私有方法【注意:私有方法只有接口自己才能调用,不能被实现类或别人使用】
接口多实现类问题:
  1. 接口中,没有静态代码块 或者 构造方法
  2. 一个类的直接父类是唯一的,但是一个类可以同时实现多个接口【implements xxx, yyy】
  3. 如果实现类,实现的多个接口时,接口中存在重复的抽象方法,那么只需要覆盖重写一次就可以
  4. 如果实现类没有覆盖重写所有的接口中的所有抽象方法,那么实现类必须是一个抽象类
  5. 如果实现类,实现的多个接口时,接口中存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写
  6. 如果实现类的父类方法与接口当中的默认方法冲突时,默认优先使用父类的方法
接口多继承
  1. 类与类时单继承的,直接父类只有一个。
  2. 类与接口之间是多实现的,一个类可以实现多个接口
  3. 接口与接口之间是多继承的

注意:
1、多个父接口当中的抽象方法如果重复,没关系【因为没有实现体】
2、多个父接口当中的默认方法如果重复,那么子接口必须进行默认方法的重写【不可省略default关键字,因为该类本省也是接口】

上一篇下一篇

猜你喜欢

热点阅读