1、接口概述

  • 接口就是一种公共的规范标准,只要符合规范标准,都可以使用
  • Java中的接口更多的体现在对行为的抽象

2、接口的特点

  • 接口用关键字interface修饰
    • public inteerface 接口名 {}
  • 类实现接口用implments表示
    • public class 类名 implments 接口名 {}
  • 接口不能实例化
    • 接口实例化可以参考多态的方式,通过实现类对象实例化,这叫接口多态
    • 多态的形式:具体类多态,抽象类多态接口多态
    • 多态的前提:
      • 有继承或实现关系
      • 有方法重写
      • 有父(类/接口)引用指向(子/实现)类对象
  • 接口的实现类
    • 要么重写接口中的所有抽象方法
    • 要么是抽象类

3、接口的成员特点

  • 成员变量
    • 只能是常量
    • 默认有修饰符:public static final
  • 构造方法
    • 接口没有构造方法,因为接口主要是对行为进行抽象的,是没有具体存在
    • 一个类如果没有父类,默认继承自Object类
  • 成员方法
    • 只能是抽象方法
    • 默认修饰符:public abstract

4、类和接口的关系

  • 类和类的关系
    • 继承关系,只能单继承,但是可以多层继承
  • 类和接口的关系
    • 实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
  • 接口和接口的关系
    • 继承关系,可以单继承,也可以多继承

5、抽象类和接口的区别

  • 成员区别
    • 抽象类 变量,常量;有抽象方法,也有非抽象方法
    • 接口 常量;抽象方法
  • 关系区别
    • 类与类 继承,单继承
    • 类与接口 实现,可以单实现,也可以多实现
    • 接口与接口 继承,单继承,多继承
  • 设计理念区别
    • 抽象类 对类抽象,包括属性、行为
    • 接口 对行为抽象,主要是行为

image.png

形参和返回值

1、类名作为形参和返回值

  • 方法的形参是类名,其实需要的是该类的对象
  • 方法的返回值是类名,其实返回的是该类的对象

2、抽象类名作为形参和返回值

  • 方法的形参是抽象类名,其实是需要该抽象类的子类对象
  • 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象

3、接口名作为形参和返回值

  • 方法的形参是接口名,其实需要的是该接口的实现类对象
  • 方法的返回值是接口名,其实返回的是该接口的实现类对象