jdk7-9接口变化

109 阅读1分钟

jdk7-9接口变化

interface MyInterface {

    ///// jdk7:支持public抽象方法和public静态常量
    public static int a = 1;
    int b = 1;  // 省略了public static
    public abstract void method1();
    void method2();   // 省略了 public abstract

    ///// jdk8:支持public默认方法和public静态方法
    public static void method3(){
    }
    public default void method4(){
    }

    ///// jdk9:支持private方法和private静态方法
    //private default void method5(){}  //不支持,default方法本就是为public abstract方法提供默认实现,所以不允许private
    private static void method6(){
    }
    private void method7(){
    }

}

接口跟抽象类有什么区别?

  • 声明语法不同、内部允许的成员不同、抽象类只能单继承但接口可以实现多个接口。
  • 都不能实例化、都常以多态方式使用。