A partir do Java 8, os defaultmétodos foram introduzidos nas interfaces. Efetivamente, isso significa que nem todos os métodos em um interfacesão abstract.
A partir do Java 9 (talvez), os privatemétodos serão permitidos. Isso significa que nem todos os métodos em um interfacesão public abstract.
A pergunta "Os métodos em uma interface Java devem ser declarados com ou sem o publicmodificador de acesso?" foi solicitado no Stack Overflow em /programming/161633/should-methods-in-a-java-interface-be-declared-with-or-without-a-public-access-m
Lá, a maioria das respostas argumentou que public abstractnão deveria ser usado porque nenhum método em um interfacepode ser outra coisa senão public abstract. Esse não é mais o caso.
Portanto, à luz desses novos recursos de interfaces, as public abstractpalavras - chave devem ser usadas em uma declaração de método de interface Java?
No meu ambiente específico, teremos pessoas que são engenheiros de software experientes, mas não experientes em Java, lendo o código Java de tempos em tempos. Sinto que deixar de fora as public abstractpalavras - chave criará um ponto de confusão adicional para aqueles que não estão familiarizados com o histórico de como as interfaces passaram a ter regras diferentes para o uso dessas palavras-chave.
abstractestá se tornando cada vez mais complicada. Em Java 9, a mesma frase poderia ser: "Um método de interface sem um defaultmodificador ou um staticmodificador ou um privatemodificador é implicitamente abstract ..." Além disso, os argumentos auxiliares para não usar explicitamente as palavras-chave, ou seja, que todos os métodos de interface são public abstract, agora são discutíveis.
streama java.util.Collectionou Map.getOrDefault(). Alternativa é criar uma nova sub-interface, e fazer com que todo mundo faça downcast, como o Graphics2D, e ninguém gostou disso!
defaultmodificador oustaticmodificador é implicitamenteabstract... É permitido, mas desencorajado por uma questão de estilo, a especificar redundantemente oabstractmodificador para uma declaração desse método ". Por que você espera que as coisas mudem?