public interface A {//接口A
public abstract void md();//抽象方法 abstract
public default void show() {//默认方法 default
System.out.println("接口a中的默认方法");
}
}
public interface b {//b接口
public default void show() {//b的默认show方法
System.out.println("调用B的默认show方法");
}
}
public class in implements A,b{
public void md() {
System.out.println("A接口中的抽象类-----md");
}
// public void show() {
// System.out.println("重写A接口里的默认方法---show");
// }
public void show() {//重写了就不知道是谁的show方法
System.out.println("show方法");
}
}
public class TESTs {
public static void main(String[] args) {
// TODO 自动生成的方法存根
in in=new in();//创建in的对象
in.show();//调用show()方法
in.md();//调用md()方法
}
}
运行结果
如果两个接口中的默认方法名一样,类继承了两个接口,调用默认方法时必须重写,否则就会报错
重写默认方法时可以省略default