是否应使用或不使用public访问修饰符声明Java接口中的方法?
当然,技术上没关系.实现a的类方法interface总是如此public.但什么是更好的惯例?
Java本身并不一致.例如,参见Collectionvs. Comparable或Futurevs ScriptEngine..
Java 8包含了一个名为Defender方法的新功能,它允许在接口中创建默认方法实现.
首先,对于Java中所有精简程序员来说,这是一个巨大的范式转换.我查看了Brain Goetz给出的JavaOne 13演示文稿,他正在讨论集合库中的新内容stream()和parallelStream()实现.
为了在Collection界面中添加新方法,他们不能在不破坏以前版本的情况下添加新方法.所以他说,为了迎合这一点,我们增加了Default方法的新功能.
public interface SimpleInterface {
public void doSomeWork();
//A default method in the interface created using "default" keyword
default public void doSomeOtherWork(){
System.out.println("DoSomeOtherWork implementation in the interface");
}
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题基本上是默认方法只是在需要向接口添加新方法而不破坏客户端代码时才有用吗?或者它也有一些其他用途吗?