1. 接口的扩展方法
Java8允许给接口添加一个非抽象的方法,只需要使用default关键字即可,这个特征又叫做扩展方法。
代码:定义Formula 接口,接口里定义非抽象方法sqrt,并用default修饰
interface Formula {
double calculate(int a);
default double sqrt(int a) {
return Math.sqrt(a);
}
}
实现了Formula接口的子类只需要实现一个calculate方法,默认方法sqrt将在子类中可以直接使用。
Formula formula = new Formula() {
@Override
public double calculate(int a) {
return sqrt(a * 100);
}
};
formula.calculate(100); // 100.0
formula.sqrt(16); // 4.0
2. Lamda