复习的时候看到了interface还可以用default声明方法,学习了一下。Java8接口中也允许使用 default 关键字来定义并实现实例方法,这个应用有点类似于抽象类的功能。
通过default方法,在接口中统一实现某些功能,无需在各个类中重复实现它。上一个小例子:
package example;
interface IntefercaeExample {
default void showDefault(){
System.out.println("hello");
}
static void showStatic(){
System.out.println("haha");
}
//没有实现的抽象方法
void sayHi();
}
class Sometry implements IntefercaeExample{
@Override
public void sayHi() {
System.out.println("Hi");
}
public static void main(String[] args) {
IntefercaeExample.showStatic();
Sometry learnDefault = new Sometry();
//被Default所修饰的具体方法可以通过引用变量来调用
learnDefault.showDefault();
learnDefault.sayHi();
}
}
输出结果: