java - 为什么我们应该将接口(interface)方法声明为公共(public)的?

标签 java interface public-method

当我实现一个 interface 方法时,我不得不将其设为 public 方法。

在某些情况下,我们可能想要使用 default(例如在同一个包中访问的情况)或 protected

谁能解释一下这个限制背后的原因?

最佳答案

接口(interface)旨在定义一种类型的 public API - 仅此而已,而不是其实现。因此,您在接口(interface)中定义的任何方法(或静态成员)按定义都是 public

由于接口(interface)不能包含任何具体实现,因此无法从内部调用任何成员方法。声明这些方法但将调用留给子类或完全不相关的客户端将意味着您的类型定义不完整且脆弱。这就是为什么如果您需要定义 protected 或包访问成员,您可以在抽象类(也可能包含实现)中这样做。

关于java - 为什么我们应该将接口(interface)方法声明为公共(public)的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9614708/

相关文章:

c#接口(interface),抽象类,强制继承类不是抽象类

java - 如何使用 Java 调试接口(interface)跟踪递归调用?

c# - 使用另一个类的类方法

Java单例设计模式与全局变量

java - 为什么我不能在我的 IntelliJ 中下载 OpenJDK-17?

c# - 从接口(interface)派生的通用对象的 XML 序列化列表,,,

javascript - 使用 CoffeeScript 在 “private method” 类中获取 “public function”

java - 对象数组中不可访问的公共(public)方法

java - 无法捕获 Spring Batch 的 ItemWriter 中的异常

java - Android - 在 SDK 中实现回调