在Java9+版本中,接口的内容可以有:
-
成员变量:其实是常量,public static final 常量名称 = 数据值:
常量必须进行赋值,且赋值后不能改变
常量名称用大写,用下划线分开 -
抽象方法:接口中最重要的就是抽象方法, public abstract 返回值类型 方法名(参数列表);
注:实现类必须实现接口中的所有抽象方法。 -
默认方法:public default 返回值类型 方法名(参数列表){方法体}
注:默认方法也可以被覆盖重写 -
静态方法:public static 返回值类型 方法名(参数列表){方法体}
静态方法不能通过实现类的对象调用,只能通过 接口名进行调用,这是因为一个实现类可能实现多个接口,多个接口中可能含有相同方法名的静态方法,如果用实现类对象来调用某个静态方法,编译器无法判别调用的哪一个。 -
私有方法: 从Java9开始,接口里面可以定义私有方法,即只能被本接口内部使用的方法,为什么需要私有方法呢?有些时候我们在写接口的方法(默认方法,静态方法)时候,可能需要用到大量的重复代码,这时候我们可以把重复的代码写出来单独作为一个方法A,这样在写其他方法的时候就直接调用方法A就可以了了,但是我们又不希望实现类拥有对方法A的访问权限,避免带来不必要的影响,所以用private 返回值类型 方法名(参数列表){方法体} 来定义私有方法