介绍
接口不能实例化接口中的成员都是public修饰的,写不写都是,因为规范的目的是为了公开化JDK8之前接口中只能是抽象方法和常量,没有其他成分
格式
public interface 接口名{
// 常量
// 抽象方法
}
interface demo1 {
// public static final 可以省略
public static final int NUMBER1 = 12;
int NUMBER2 = 10;
// public abstract 可以省略
public abstract void run0();
void run1();
}
接口的实现
接口的用法
接口是用来被类实现的,实现接口的类称为实现类。实现类可以理解成所谓的子类
修饰符 class 实现类 implements 接口1,接口2,接口3,...{}
实现的关键字:implements
从上面可以看出,接口可以被类单实现,也可以被类多实现
接口的注意事项
一个类实现接口,必须重写完全接口的全部抽象方法,否则这个类需要定义成抽象类
接口的继承
关系
类和类的关系:单继承类和接口的关系:多实现接口和接口的关系:多继承,一个接口可以同时继承多个接口
作用
规范合并,整合多个接口为同一个接口,便于子类实现
JDK8开始接口新增方法
第一种,默认方法
类似之前写得普通实例方法:必须用default修饰默认会public修饰,需要用接口的实现类的对象来调用
default void run(){
System.out.println('-- 开始跑 --');
}
第二种,静态方法
默认会public修饰,必须static修饰接口的静态方法必须使用本身的接口名来调用
static void inAddr(){
System.out.println('我们都在学习');
}
第三种,私有方法
就是私有的实例方法,必须使用private修饰,从jdk9才开始有的只能在本类中被其他的默认方法或者私有方法访问
private void go(){
System.out.println('-- 准备 --');
}
注意事项
接口不能创建对象一个类实现多个接口,多个接口中有同样的静态方法不冲突一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的一个类实现了多个接口,多个接口中存在同名的默认方法,不冲突,这个类重写该方法即可一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点