一、概述
1.1 介绍
接口是用于描述类具有什么功能,但不给出具体的实现;即接口是对外提供的一组规则、标准。
2.2 标准
① 关键字interface, 格式:interface 接口名{}
② 类和接口不再是继承关系,而是实现,关键字implements,格式:class 类名 implements 接口名{}
③ 注意:访问权限修饰符只能是public或者默认
二、特点
2.1 接口成员变量的特点
① 接口中没有成员变量,只有公有静态常量,使用public static final关键字进行修饰
注意:final关键字修饰的属性必须进行初始化,而对于公有静态常量(public static final),初始化的途径只有两种:
- 定义时显示初始化
- 在静态代码块中初始化
但是接口中不允许存在代码块,而且接口没有构造方法。因此,要求我们在接口定义公有静态常量中,必须定义的时候就赋初值。否则 IDEA 就会报错。
2.2 接口成员方法的特点
① 在 JDK7.0 版本及其它之前的版本中,接口仅支持公有的抽象方法;(public abstract 返回值类型 方法名())
② 从 JDK8.0 开始,接口中可以有默认方法和静态方法 (默认方法前面必须添加default 关键字,default 关键字只能在接口中使用,就算重写默认方法,实现类中重写后的方法也不能加default 修饰符,不然 IDEA 自己报错)
③ 从 JDK9.0 开始,接口可以有私有方法
2.3 接口构造方法的特点
接口存在的目的是为了规范类,因此接口不能被实例化。接口中不允许存在代码块,也没有需要初始化的成员,因此接口中没有构造方法
2.4 接口创建对象的特点
① 接口的实现类: 可以是抽象类,也可以是普通类
对于抽象实现类:可以不用实现接口中的所有方法,因为抽象实现类本身容许抽象方法
对于普通实现类:要求实现接口的所有抽象方法
2.5 接口继承关系的特点
①类与接口之间的关系
类与接口是实现关系,支持"多实现",即一个类可以实现多个接口
②接口与接口之间的关系
接口与接口之间是继承关系,java支持接口的多继承,即一个接口里面可以同时继承多个接口,格式如下:
接口 extends 接口 1, 接口 2, 接口 3
类 A 和 类 B 的关系: