接口
概念:通过interface创建一种数据结构【 是一个更加彻底的抽象类】
格式:
public interface 接口名{
定义常量【很少】
定义抽象方法【经常做】
}
注意:
- 定义变量默认就是常量,不管有没有写 public static final
- 定义方法默认都是抽象方法,不管有没有写 public abstract
使用方式: 只能通过子类实现
public class 子类 implements 接口1 , 接口2...{
}
使用场景:如果说想约束某一些类一定具备某一些功能 【一般不抽取属性】
JDK8新增方法:
默认方法:
default 返回值类型 方法名(参数){
}
只能创建子类对象,通过子类对象去调用
静态方法:
static 返回值类型 方法名(参数){
}
只能通过接口名.方法名()
私有方法【JDK9】
private 返回值类型 方法名(参数){
}
只能在接口中的默认方法中调用
目的:在不改变子类的前提下,新增方法
注意事项:
类和接口的关系:
- 实现,可以先继承一个父类,再去实现多个接口
- public class 子类 extends 父类 implements 接口1 , 接口2 {}
接口和接口的关系:
- 继承,一个接口可以继承多个接口
- public interface A extends B , C...{}