Files
Hui-s-notebook/logseq-java/pages/接口.md
2024-02-02 00:12:49 +08:00

1.8 KiB

  • 也是一种抽象,比 抽象类 更抽象
  • 作用
    • 帮系统拓展新的功能
  • 定义语法
  • 使用
    • 关键字implements
    • 访问修饰符 class 类的类名 extends 父类 implements 接口{
        @Override
        //重写接口的方法
      }
      
    • 特点
      • 不能实例化,不能用new
      • 接口中抽象方法默认为public和abstract
      • 接口中抽象方法,必须要通过实现类给与实现
      • 接口中的抽象方法,实现类可以变成抽象类,就可以不实现
      • 类只能单继承,接口可以多实现
      • 类只能单继承,接口可以多继承
  • 可放置的元素
    • 抽象方法
    • 静态常量
      • public static final int HEIGHT_LIMIT = 3000;
        
        //使用   接口.常量名
        
    • JDK1.8之前只能放抽象方法及静态常量
      • JDK1.8增加default, 静态方法
        • default void fly(){}
          static void cook(){
            System.out.println("做饭")
          }
          
  • 接口与类关系
    • 接口与类是拓展关系,类之间是继承关系
    • 继承体系中本身就有的方法放在抽象类中,如果需要给继承体系拓展新的功能,就放在接口中
    • 接口与抽象类区别
      • 语法上:
        • 抽象类用 abstract ,需要有子类继承实现
        • 接口使用 interface ,需要有实现类来进行实现
      • 子类和抽象类为继承关系,实现类和接口时一种实现关系
      • 抽象类只能单继承,接口可以多继承,多实现