Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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 既然所有接口方法都是公共的,这是否意味着接口方法的所有实现也必须是公共的_Java_Interface_Public - Fatal编程技术网

Java 既然所有接口方法都是公共的,这是否意味着接口方法的所有实现也必须是公共的

Java 既然所有接口方法都是公共的,这是否意味着接口方法的所有实现也必须是公共的,java,interface,public,Java,Interface,Public,既然所有接口方法都是公共的,这是否意味着接口方法的所有实现也必须是公共的?我已经读到子类只能赋值 高于原始方法的访问级别。我已经用一些代码尝试过了,这似乎是真的,但我只是想知道在哪里可以找到与此相关的文档 接口被创建为一个接口,用于使用实现它们的类 例如,我们实现了一个Comparable接口,以信任该类具有compareTo方法,该方法可以被其他类使用 所以这是不可能的,我不认为这样做有什么意义 我没有找到与您的问题完全相关的文档部分,但可以从这一部分理解: 如果重写或隐藏的方法是public

既然所有接口方法都是公共的,这是否意味着接口方法的所有实现也必须是公共的?我已经读到子类只能赋值
高于原始方法的访问级别。我已经用一些代码尝试过了,这似乎是真的,但我只是想知道在哪里可以找到与此相关的文档

接口
被创建为一个接口,用于使用实现它们的类

例如,我们实现了一个
Comparable
接口,以信任该类具有
compareTo
方法,该方法可以被其他类使用

所以这是不可能的,我不认为这样做有什么意义

我没有找到与您的问题完全相关的文档部分,但可以从这一部分理解:

如果重写或隐藏的方法是public,那么重写或隐藏的方法必须是public;否则,将发生编译时错误


您可以在中找到该要求的官方文档

引述自:

重写或隐藏方法的访问修饰符(§6.6)必须提供至少与重写或隐藏方法相同的访问,如下所示:

如果重写或隐藏的方法是public,那么重写或隐藏的方法必须是public;否则,将发生编译时错误。

如果重写或隐藏方法受保护,则重写或隐藏方法必须受保护或公开;否则,将发生编译时错误

如果重写或隐藏方法具有包访问权限,则重写或隐藏方法不能是私有的;否则,将发生编译时错误


正如Oracle的官方Java教程中所述:

接口是一种所有实现类都必须遵守的契约

这意味着,不允许更改方法的签名、返回类型和访问修饰符


另外,如果您试图用
@Override
注释标记接口方法,编译器将抛出一个错误。

您似乎已经拥有了所需的全部内容。注意:在Java 9中,接口上的私有方法是允许的。我认为OP要求提供文档。@TonyStark您能否更改问题的标题以突出显示您正在寻找文档,而不是解释?有些人似乎没有读到真正的问题。@TonyStark看一看,关于Java 9中的私有方法,似乎没有人关心这个问题是离题的,因为它需要非现场资源。。。