Malgré le fait que cette question a été posée il y a longtemps mais je pense qu'une description complète clarifierait pourquoi il n'est pas nécessaire d'utiliser un résumé public avant les méthodes et un final statique public avant les constantes d'une interface.
Tout d'abord, les interfaces sont utilisées pour spécifier des méthodes communes pour un ensemble de classes non liées pour lesquelles chaque classe aura une implémentation unique. Par conséquent, il n'est pas possible de spécifier le modificateur d'accès comme privé car il ne peut pas être accédé par d'autres classes à remplacer.
Deuxièmement, bien que l'on puisse initier des objets d'un type d'interface mais une interface est réalisée par les classes qui l'implémentent et non héritée. Et comme une interface peut être implémentée (réalisée) par différentes classes non liées qui ne sont pas dans le même package, le modificateur d'accès protégé n'est donc pas également valide. Donc, pour le modificateur d'accès, il ne nous reste que le choix public.
Troisièmement, une interface n'a aucune implémentation de données, y compris les variables et méthodes d'instance. S'il y a une raison logique d'insérer des méthodes ou des variables d'instance implémentées dans une interface, il doit s'agir d'une superclasse dans une hiérarchie d'héritage et non d'une interface. Compte tenu de ce fait, puisqu'aucune méthode ne peut être implémentée dans une interface, toutes les méthodes dans l'interface doivent donc être abstraites.
Quatrièmement, Interface ne peut inclure constant que ses membres de données, ce qui signifie qu'ils doivent être finaux et bien sûr les constantes finales sont déclarées statiques pour n'en conserver qu'une seule instance. Par conséquent, la finale statique est également un must pour les constantes d'interface.
Donc, en conclusion, bien que l'utilisation des méthodes abstract public avant et final statique avant public soit valide, mais comme il n'y a pas d'autres options, elle est considérée comme redondante et non utilisée.