当我实现一个 interface
方法时,我不得不将其设为 public
方法。
在某些情况下,我们可能想要使用 default
(例如在同一个包中访问的情况)或 protected
。
谁能解释一下这个限制背后的原因?
最佳答案
接口(interface)旨在定义一种类型的 public API - 仅此而已,而不是其实现。因此,您在接口(interface)中定义的任何方法(或静态成员)按定义都是 public
。
由于接口(interface)不能包含任何具体实现,因此无法从内部调用任何成员方法。声明这些方法但将调用留给子类或完全不相关的客户端将意味着您的类型定义不完整且脆弱。这就是为什么如果您需要定义 protected 或包访问成员,您可以在抽象类(也可能包含实现)中这样做。
关于java - 为什么我们应该将接口(interface)方法声明为公共(public)的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9614708/