默认方法
默认方法就是接口可以有默认已实现方法,而且不需要实现类去实现其方法
default关键字
主要为了解决向接口中添加新功能扩展而不影响之前实现该接口的类
public interface DefaultOne {
default void print(){
System.out.println("defaultOne");
}
}
创建实现类直接调用即可
多个默认方法
如果一个类实现了多个拥有同名默认方法的接口怎么办
会编译错误,解决办法有两种
第一种自然是实现类对方法进行重写
第二种使用super关键字指定调用哪个接口中的默认方法
public interface DefaultOne {
default void print(){
System.out.println("defaultOne");
}
}
public interface DefaultTwo {
default void print(){
System.out.println("defaultTwo");
}
}
public class MyBase implements DefaultOne,DefaultTwo{
@Override
public void print() {
// 可同时调用
// DefaultOne.super.print();
DefaultTwo.super.print();
System.out.println("新增内容");
}
}
静态方法
public interface DefaultOne {
default void print(){
System.out.println("defaultOne");
}
static void run(){
System.out.println("run");
}
}
可以直接使用接口名调用
@Test
public void demo(){
new MyBase().print();
DefaultOne.run();
}