·随着时间的发展一个接口已经产生了2W个子类。但是发现接口方法不足,要增加一个方法,根据覆写规则,就要修改2W个子类。所以为了解决这一问题,允许接口里面定义普通方法了。
范例1:使用default定义接口普通方法
interface Message {
public abstract void print();
default void fun() {
System.out.println("你没见过的方法出现了!");
}
}
class MyMessage implements Message {
@Override
public void print() {
System.out.println("Hello World!");
}
}
public class Demo {
public static void main(String[] args) {
Message msg = new MyMessage();
msg.print();
msg.fun();
}
}
=============分割线=============
范例2:使用static定义接口普通方法
interface Message {
public abstract void print();
default void fun() {
System.out.println("你没见过的方法出现了!");
}
static void get() {
System.out.println("接口直接调用...");
}
}
class MyMessage implements Message {
@Override
public void print() {
System.out.println("Hello World!");
}
}
public class Demo {
public static void main(String[] args) {
Message msg = new MyMessage();
msg.print();
msg.fun();
Message.get();// 接口类直接调用
}
}
