在Java8中,默认方法实现可以同时接受public和default修饰符。下面两种方法的主要区别是什么?在哪种情况下哪种类型需要遵循。
default int makeMul(int x, int y) {
return x * y;
}
public default int makeMul(int x, int y) {
return x * y;
}发布于 2016-05-11 14:30:45
默认方法在这里没有什么特别之处。Java总是允许接口方法声明为公共的,即使它们已经隐式地是公共的。
来自JLS 9.4
接口体中的每个方法声明都是隐式公共的(§6.6)。允许为接口中的方法声明冗余地指定公共修饰符,但作为样式问题,不鼓励这样做。
发布于 2016-05-11 14:42:13
正如其他人所建议的,default关键字有两个主要用途:
在Java8之前,它只能用于触发statement.
public default int method())中使用default关键字。据我所知,在一个简单的类中,在方法的声明中使用default关键字根本没有任何区别。
有关接口中default方法用途的详细讨论,请参见Purpose of Default or Defender methods in Java 8
https://stackoverflow.com/questions/37154599
复制相似问题