Já encontrei várias vezes esta situação: interfaces que definem explicitamente as suas propriedades e métodos como public.
Como explica [1] o conceito de interface implica que
All methods declared in an interface are implicitly public, so the public modifier can be omitted.
An interface can contain constant declarations in addition to method declarations. All constant values defined in an interface are implicitly public, static, and final. Once again, these modifiers can be omitted.
Assim, os seguintes interfaces são equivalentes
public interface Interface1 {
public static final int someIntConstant = 2;
public void somePublicMethod(int a);
}
public interface Interface2 {
int someIntConstant = 2;
void somePublicMethod(int a);
}
Actualização: a minha Conclusão
Sou a favor do mínimo trabalho para obter o melhor código, logo farei por não utilizar os public, static ou final numa interface.
Será que o código fica mais legível com modifiers redundantes que estão a “encher”, ou com nenhuns modifiers?
Uma interface permite exactamente isso ao criador e ao leitor: não pensar em modifiers, apenas no resto. Logo penso que a legibilidade aumenta sem a utilização de modifiers redundantes.
E de notar que um (bom) IDE fará automaticamente os métodos public quando lhe dissermos que a classe implementa uma interface.
Leituras
- Learning the Java Language > Defining an Interface (http://java.sun.com/docs/books/tutorial/java/IandI/interfaceDef.html)

0 respostas até ao momento ↓
Ainda não existe comentários. Pode ser o primeiro preenchendo o formulário em baixo.
Deixe um comentário