Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在java8中使用“default”关键字_Java_Java 8_Interface_Default - Fatal编程技术网

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

为什么在java8中使用“default”关键字,java,java-8,interface,default,Java,Java 8,Interface,Default,在Java8中,引入了默认方法实现。我的问题是为什么需要在方法名/签名中使用默认关键字。为什么不能像通常的方法实现那样没有default关键字呢?在Java 8中,“default method”或Defender methods特性允许开发人员在不破坏现有实现的情况下向接口添加新方法。它提供了允许接口定义实现的灵活性,在具体类无法为该方法提供实现的情况下,该实现将用作默认实现 您可以参考下面的URL以了解更多详细信息。 它明确了目的。不能意外地为方法创建默认实现。就像抽象方法需要关键字一样,而

在Java8中,引入了默认方法实现。我的问题是为什么需要在方法名/签名中使用默认关键字。为什么不能像通常的方法实现那样没有default关键字呢?

在Java 8中,“default method”或Defender methods特性允许开发人员在不破坏现有实现的情况下向接口添加新方法。它提供了允许接口定义实现的灵活性,在具体类无法为该方法提供实现的情况下,该实现将用作默认实现

您可以参考下面的URL以了解更多详细信息。

它明确了目的。不能意外地为方法创建默认实现。就像抽象方法需要关键字一样,而不仅仅是没有实现的方法


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

注意:这是推测,但经过教育的推测。@Kayaman的回答也可能是正确的


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

值得注意的是,因为Java 8接口也支持静态方法。省略default关键字会导致歧义:在没有修饰符的接口中,方法声明是像常量一样隐式静态的,还是隐式默认的?事实上,一切都很清楚。

我想你指的是接口方法的默认实现?问题不是默认关键字是什么,而是为什么需要它。