接口支持定义 private 方法
在 Java 9 之前,接口(interface
)中只能定义公共的(public
)抽象方法、默认方法(default methods
)和静态方法(static methods
)。
在 Java 8 中,引入了默认方法(default methods
),使接口可以为方法提供默认实现,避免一些小的功能都需要类实现来重写一遍,如果有必要的话也可以直接替换实现。
然而,如果多个默认方法需要共享一些通用逻辑,你只能选择将一样的代码复制多次,或者将其封装到一个 static 工具类里,但这样又降低了接口的封装性(即又连接到其他文件中)。
因此新增加的 private
方法可以在避免被实现类访问或外部调用的同时,为接口的一些公用逻辑的默认方法减轻耦合度,并且当需要修改时只修改一处即可。