java 8 它允许我们通过“default”关键字在接口中添加非抽象方法:
interface IFormula {
double calculate(int a);
default double sqrt(int a) {
return Math.sqrt(a);
}
}
一个接口中可存在多个默认方法:
interface IFormula {
double calculate(int a);
default double sqrt(int a) {
return Math.sqrt(a);
}
default double abs(int a) {
return Math.abs(a);
}
}
也可以只存在默认方法或者只存在抽象方法:
interface IFormula {
default double abs(int a) {
return Math.abs(a);
}
}
interface IFormula {
double calculate(int a);
}
实现包含默认方法以及抽象方法的接口,具体的类只需要实现抽象的方法,默认方法可以被接口对象引用:
interface IFormula {
double calculate(int a);
default double sqrt(int a) {
return Math.sqrt(a);
}
}
IFormula iFormula = new IFormula() {
@Override
public double calculate(int a) {
return a * 100;
}
};
System.out.println(iFormula.calculate(15));
System.out.println(iFormula.sqrt(4));
结果为:
1500.0
2.0