java8接口允许公共默认方法

pok*_*uri 3 java access-modifiers java-8 default-method

在java 8中,默认方法实现可以同时使用publicdefault修饰符.以下两种方法的主要区别是什么?在哪种条件下需要遵循哪种类型.

default int makeMul(int x, int y) {
    return x * y;
}

public default int makeMul(int x, int y) {
    return x * y;
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 9

这里的默认方法没什么特别之处.Java一直允许将接口方法声明为public,即使它们已经隐式公开.

来自JLS 9.4:

接口主体中的每个方法声明都是隐式公共的(第6.6节).允许但不鼓励作为样式,在接口中冗余地指定方法声明的公共修饰符.