Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
Java 是否没有必要在下面的代码中指定public或public abstract?_Java_Interface_Abstract - Fatal编程技术网

Java 是否没有必要在下面的代码中指定public或public abstract?

Java 是否没有必要在下面的代码中指定public或public abstract?,java,interface,abstract,Java,Interface,Abstract,是否需要使用getFuelOption()方法在行中指定public或public abstract? 谢谢大家! 否,默认情况下,所有接口方法都是公共和抽象 第9.4节中的相关文本 接口主体中的方法可以声明为public或private。如果未提供访问修饰符,则该方法是隐式的 公众 缺少私有、默认或静态修饰符的接口方法是 含蓄地抽象。它的主体由分号表示,而不是 街区 不需要公共访问修饰符,因为 接口主体中的每个方法声明都是隐式的 公共(§6.6)。这是允许的,但在风格上是不鼓励的, 为中的方法

是否需要使用getFuelOption()方法在行中指定public或public abstract?
谢谢大家!

否,默认情况下,所有
接口
方法都是
公共
抽象

第9.4节中的相关文本

接口主体中的方法可以声明为public或private。如果未提供访问修饰符,则该方法是隐式的 公众

缺少私有、默认或静态修饰符的接口方法是 含蓄地抽象。它的主体由分号表示,而不是 街区


不需要公共访问修饰符,因为

接口主体中的每个方法声明都是隐式的 公共(§6.6)。这是允许的,但在风格上是不鼓励的, 为中的方法声明冗余指定公共修饰符 接口。(第9.4节)

不需要抽象访问修饰符,因为

默认方法是在与的接口中声明的方法 默认修饰符;其主体始终由块表示

而且

缺少默认修饰符或静态修饰符的接口方法是隐式抽象的,因此其主体由分号表示,而不是块

假设默认方法有一个主体,而那些没有主体的方法本质上是抽象的,并且接口上的每个方法声明本质上都是公共的,那么您不需要指定任何一个关键字

请参阅以下JLS:


.

投票结果为上,但最好链接到您引用的JLS部分。感谢您的建议,用JLS更新答案。谢谢!我记得读过这篇文章,但我想仔细检查一下,因为我看到的一些例子包括了这些关键字。默认情况下,所有的接口方法都是
public
abstract
。这是不必要的。我确实。。。我只是想确定一下,我看到一些人不顾后果地使用关键词。。对不起,这是我的第一个问题。。天啊,如果你这么做了,那么你就会找到一个明确的答案,而不必费心发帖了。提供答案的两个人在几分钟内就回答了问题,这在这个网站上是不典型的。为什么?因为通过搜索很容易找到答案。你不需要戴上遮羞布来挽回面子——你所需要做的就是了解这个网站重视效率,并继续学习这些知识。请阅读上的“帮助文件”部分。
interface Airplane {
     String fuelOption = "kerosene";
     
     public abstract String getFuelOption();
}