如果将来我们希望改变某些类正在实现的接口(例如,添加一些新方法)。
如果我们添加抽象方法(附加方法),那么类(实现接口)必须实现创建依赖性约束的额外方法和执行相同的成本开销。
为了解决这个问题,我们可以在界面中添加默认方法。
这将删除实现其他方法的依赖项。
我们不需要修改实现类来合并更改。这称为二进制兼容性。
请参考以下示例:
我们将要使用的界面
//Interface
interface SampleInterface
{
// abstract method
public void abstractMethod(int side);
// default method
default void defaultMethod() {
System.out.println("Default Method Block");
}
// static method
static void staticMethod() {
System.out.println("Static Method Block");
}
}
//The Class that implements the above interface.
class SampleClass implements SampleInterface
{
/* implementation of abstractMethod abstract method, if not implemented
will throw compiler error. */
public void abstractMethod(int side)
{System.out.println(side*side);}
public static void main(String args[])
{
SampleClass sc = new SampleClass();
sc.abstractMethod(4);
// default method executed
sc.defaultMethod();
// Static method executed
SampleInterface.staticMethod();
}
}
注意:有关更多详细信息,请参阅default methods