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(){
}
}
接口跟抽象类有什么区别?
- 声明语法不同、内部允许的成员不同、抽象类只能单继承但接口可以实现多个接口。
- 都不能实例化、都常以多态方式使用。