先来张图大致了解一下两者的区别:
注:接口中只能有static、final变量,不能有其他变量。表格中的一处错误:抽象类不能有default修饰符。
Java 8新特性–接口默认方法
默认方法是在接口中的方法签名前加上 default 关键字的实现方法。
/**
* 简单例子
*/
interface InterfaceA {
default void foo() {
System.out.println("InterfaceA foo");
}
}
class ClassA implements InterfaceA {
}
public class Test {
public static void main(String[] args) {
// 打印:“InterfaceA foo”
new ClassA().foo();
}
}
为什么要有默认方法?
在Java 8之前,接口与其实现类之间的耦合度过高&