从Java 8开始,default
方法被引入接口。有效地,这意味着并非in中的所有方法interface
都是abstract
。
从Java 9(也许)开始,private
将允许使用方法。这意味着并非in中的所有方法interface
都是public abstract
。
问题“在Java接口中的方法是否应使用public
access修饰符声明?” 在/programming/161633/should-methods-in-a-java-interface-be-declared-with-or-without-a-public-access-m的堆栈溢出中被询问
那里,大多数答案都认为public abstract
不应使用,因为中的任何方法都interface
不能是public abstract
。这已不再是这种情况。
因此,鉴于接口的这些新功能,是否应该public abstract
在Java接口方法声明中使用关键字?
在我的特定环境中,我们将有一些经验丰富的软件工程师,但没有Java经验的人会不时读取Java代码。我觉得,public abstract
对于那些不熟悉接口如何具有使用这些关键字的不同规则的历史的人来说,现在将关键字排除在外会造成更多的困惑。
abstract
变得越来越复杂。在Java 9中,同一句话可能是:“缺少default
修饰符或static
修饰符或private
修饰符的接口方法是隐式抽象的...”。另外,未明确使用关键字的辅助参数,即所有接口方法都是public abstract
,现在有争议。
stream
到java.util.Collection
,或Map.getOrDefault()
。另一种方法是创建一个新的子接口,并使每个人都无法使用,例如Graphics2D,而没人喜欢!
default
修饰符或static
修饰符的接口方法是隐式的abstract
...允许,但不鼓励使用样式,请abstract
为这种方法声明多余地指定修饰符。” 您为什么期望事情会改变?