为什么在 java8 中使用 "default" 关键字

Why the use of "default" keyword in java8

在Java8中介绍了default方法的实现。我的问题是为什么方法 name/signature 中需要 default 关键字。为什么不能像通常的方法实现那样不用default关键字呢?

在Java8中,“默认方法”或(Defender方法)特性,允许开发者在不破坏现有实现的情况下向接口添加新方法。它提供了灵活性,允许接口定义实现,在具体 class 无法为该方法提供实现的情况下用作默认实现。

您可以参考以下内容URL了解更多详情。 https://dzone.com/articles/interface-default-methods-java

意思很明确。您不能不小心 为方法创建默认实现。就像 abstract 方法需要关键字,而不仅仅是没有实现的方法。

粗心程序员的安全预防措施。

注意:这是猜测,但是有根据的猜测。 @Kayaman 的回答也很可能是真的。

Java 旨在尽可能向后兼容。如果您没有包含 default 关键字,那么可能无效的代码(可能是错误编写的)在以前的 java 版本中现在可以在 Java 8+ 上编译。这可以被视为破坏向后兼容性。

值得注意的是,由于Java 8 个接口也支持static 方法。遗漏 default 关键字会导致歧义:接口中没有修饰符的方法声明是 隐式静态 (如常量),还是 隐式默认?就这样,一切都清楚了。