来cnblogs的第一天,来水一篇文章吧。
今天再了解java9新特性的时候,突然发现之前好像只在接口里定义抽象方法,其他东西没常识过。
虽然知道java8对接口增强了两个东西:
接口静态方法
接口默认方法
今天得知java9又增强了一个“接口私有方法”,因此我经过尝试发现接口都能写如下东西。
public interface aaa {
// 能写的四种方法
// 只要不是default或者private 都默认public。其中static、private static函数不能被继承,但default、static main和可以被继承。
// 什么修饰符都不加,是阿里定义接口的规范形式。而不是默认方法。必须被子类实现。
void commit();
// 接口静态方法 jdk8 不能被继承
static void aaa() {
bbb();
}
// 接口默认方法 jdk8 能被继承
default void deFault(){
}
// 接口私有方法 jdk9 不能被继承
private static void bbb(){
System.out.println("nb!");
}
// 接口main函数 能被继承
static void main(String[] args) {
System.out.println(a);
aaa();
}
//能定义变量,但默认 public static final且必须初始化,能被继承。
int a=1;
String b="b";
//能写方法,默认 public static,能被继承
class bbb {
}
}