概述:接口是一种用于描述类对外提供功能规范的、能够多继承的、特殊的抽象类。接口是一套行为规范,在接口中定义抽象方法。
接口语法:
[public] interface 接口名 [extends 父接口列表]{
// 属性声明
[public] [static] [final] 属性类型属性名 = 常量值 ;
// 方法声明
[public] [abstract] 返回值类型方法名 ( 参数列表 ) ;
}
注意:
接口访问修饰符: public、default
一个的类可以在继承一个类的同时实现多个接口,变相的实现了多继承;;
常量在接口中声明:
抽象方法在接口中声明:
注意:
- 接口中的方法都是抽象方法和静态方法(jdk1.8中多了默认方法)
- 在接口中抽象方法会默认使用 abstract 修饰(也可以主动使用)还默认且只能是 public
- 接口中 只能有抽象方法和静态方法
- 接口不是类,接口没有构造方法,接口不能被实例化
接口实现:
class 类名 [extends 父类] [implements 接口列表]
{
覆盖所有接口中定义的方法;
}
注意:
- 一个类可以同时实现多个接口,但只能继承一个类
- 类中必须重写接口中的所有方法,而且,都是公开的
接口的默认方法(jdk 1.8后):
- 使用 default 修饰,
- 他不是抽象方法,不需要每一个实现了的类都去重写,可以选择性重写,
- 用来降低后期维护成本,(可以选择性重写)
接口与抽象类的区别: