JDK1.7中:方法全都是全局抽象的方法,用public abstract修饰。如:如:(public abstract缺省存在)void run();
JDK1.8中:除了缺省修饰全局抽象方法外,还可以有仅用static或者仅用default(不可省略)修饰的非抽象方法.
如:public static run(){};
要求:实现类不能重写,只能用接口名.方法名调用.
public default run(){};
要求:可重写,可不重写,通过接口名.super.方法名调用
代码:
public interface A {
String str="接口中的全局静态常量,public final static缺省修饰";
void run();//接口中的全局抽象方法,public abstract缺省修饰
public static void run2() {
System.out.println("static修饰非抽象方法");
};
public default void run3() {
System.out.println("default修饰非抽象方法");
};
}
public class B implements A {
@Override
public void run() {
System.out.println("子类重写");
}
@Override
public void run3() {//default关键字只能出现在接口中
A.super.run3();//编译器自动添加的调用,
A.run2();
}
public static void main(String[] args) {
B b=new B();
b.run();
b.run3();
}
}