Java为什么要使用默认方法?
示例
简单的答案是,它允许您在不破坏现有实现的情况下发展现有接口。
例如,你有20年前发布的 Swim 接口。
public interface Swim {void backStroke();
}
我们做得很好,我们的接口非常流行,全世界有很多实现,您无法控制他们的源代码。
public class FooSwimmer implements Swim {public void backStroke() {
System.out.println("Do backstroke");
}
}
20年后,您已决定向该接口添加新功能,但由于我们的接口将破坏现有的实现,因此它似乎已冻结。
幸运的是,Java 8引入了名为Default方法的全新功能。
现在,我们可以向Swim接口添加新方法。
public interface Swim {void backStroke();
default void sideStroke() {
System.out.println("Default sidestroke implementation. Can be overridden");
}
}
现在,我们接口的所有现有实现仍然可以使用。但最重要的是,他们可以在自己的时间内实现新添加的方法。
这一变化的最大原因之一,也是它最大的用途之一,是在Java集合框架中。Oracle无法将foreach方法添加到现有的Iterable接口,而不中断实现Iterable的所有现有代码。通过添加默认方法,现有的Iterable实现将继承默认实现。
以上是 Java为什么要使用默认方法? 的全部内容, 来源链接: utcz.com/z/315861.html