在java 8中,默认方法实现可以同时使用public
和default
修饰符。
以下两种方法的主要区别是什么?哪种类型的条件需要遵循。
default int makeMul(int x, int y) {
return x * y;
}
public default int makeMul(int x, int y) {
return x * y;
}
答案 0 :(得分:9)
这里的默认方法没有什么特别之处。 Java总是允许将接口方法声明为public,即使它们已经隐式公开了。
来自JLS 9.4:
接口主体中的每个方法声明都是隐式公共的(第6.6节)。允许但不鼓励作为样式,在接口中冗余地指定方法声明的公共修饰符。
答案 1 :(得分:2)
正如其他人所建议的那样,default
关键字有两个主要用途:
switch-case
语句中触发默认情况。default
)中使用public default int method()
关键字。 据我了解,在简单类中使用方法声明时使用default
关键字,根本没有任何区别。
有关接口中default
方法目的的广泛讨论,请参阅Purpose of Default or Defender methods in Java 8