Java9的Interface中都能写些什么?

来cnblogs的第一天,来水一篇文章吧。

今天再了解java9新特性的时候,突然发现之前好像只在接口里定义抽象方法,其他东西没常识过。
虽然知道java8对接口增强了两个东西:

  1. 接口静态方法
  2. 接口默认方法

今天得知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 {
    }
}
posted @ 2019-11-24 22:28  杉学长  阅读(196)  评论(0)    收藏  举报