用户操作界面
package Default;
public class Dome02interface {
public static void main(String[] args) {
// 创建实现类对象
// MyInterfaceDefaultA A = new MyInterfaceDefaultA();
// A.method01();
// System.out.println("--------------");
//
调用默认方法
// A.methodDefault();
System.out.println("--------------");
MyInterfaceDefaultB B = new MyInterfaceDefaultB();
// B.method01();
B.methodDefault();
}
}
//默认方法的好处:不改变(拆除)原先中间商提供的已整理好的“线头接口”,会新增“线头”
中间商整理界面
/*
* 默认方法格式:
* public default 返回值类型 方法名称(参数列表){方法体}
*
* */
package Default;
//import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT;
public interface MyInterDefault {
// 抽象方法
public abstract void method01();
// public abstract void method02();
// 新添加的方法改成默认的方法
public default void methodDefault () {
System.out.println("这是新添加的默认方法:cccc");
}
}
开发者A界面
package Default;
public class MyInterfaceDefaultA implements MyInterDefault{
@Override
public void method01() {
System.out.println("实现了抽象方法:AAAA");
}
}
开发者B界面
package Default;
public class MyInterfaceDefaultB implements MyInterDefault{
@Override
public void method01() {
System.out.println("实现了抽象方法:BBBBB");
}
@Override
public void methodDefault() {
System.out.println("实现了覆盖抽象方法:覆盖!!");
}
}