从java 8 开始,接口允许定义默认方法。
格式:public default 返回值类型 方法名称(参数列表){
方法体
}
备注:接口当中的默认方法,可以解决接口升级的问题
public interface MyInterfaceDefault {
// //抽象方法
public abstract void methodAbs1();
// //抽象方法
//public abstract void methodAbs2();
// 添加新的方法,改为默认方法 这是实现类不要重写
public default void methodDefault() {
System.out.println("这是一个新的默认方法");
}
}
实现类要覆盖重写 ,若要接口,在接口中添加新的抽象方法会报错 实现类会报错
所以用default方法
public class MyDefaultA implements MyInterfaceDefault{
@Override
public void methodAbs1() {
System.out.println("这是一个实现类A");
}
}
/*
* 1.接口的默认方法,可以通过接口实现类对象,直接调用。
* 2.接口默认方法,也可以被接口实现类进行覆盖重写
*/
public class Test02Default {
public static void main(String[] args) {
MyDefaultA deA=new MyDefaultA();
deA.methodAbs1();
deA.methodDefault();
MyDefaultB deB=new MyDefaultB();
deB.methodAbs1();
deB.methodDefault();
}
}