java8 Interface allowing public default method
在Java 8中,默认方法实现可以同时使用EDCOX1、0和EDCOX1×1的修改器。下面两种方法的主要区别是什么?在哪种情况下需要遵循哪种类型。
1 2 3 4 5 6 7 | default int makeMul(int x, int y) { return x * y; } public default int makeMul(int x, int y) { return x * y; } |
这里的默认方法没有什么特别的。Java总是允许接口方法公开,即使它们已经隐式公开了。
来自JLS 9.4:
Every method declaration in the body of an interface is implicitly public (§6.6). It is permitted, but discouraged as a matter of style, to redundantly specify the public modifier for a method declaration in an interface.
如其他人所说,
- 在Java 8之前,它只能用于在EDCOX1×1语句中触发默认情况。
- 从Java 8开始,开发人员被允许在接口中提供实现的方法(以前是不可能的),在方法声明(EDCOX1 3)中使用EDCOX1×0个关键字。
据我所知,在一个简单的类中,在方法的声明中使用
为了广泛讨论接口中EDCOX1和0种方法的用途,请参见Java 8中默认或防御方法的用途。