この質問はずっと前に尋ねられましたが、包括的な説明では、メソッドの前にパブリック抽象、インターフェイスの定数の前にパブリック静的ファイナルを使用する必要がない理由が明確になると思います。
まず、すべてのクラスが一意の実装を持つ一連の無関係なクラスの共通メソッドを指定するために、インターフェイスが使用されます。したがって、アクセス修飾子をオーバーライドするために他のクラスからアクセスできないため、アクセス修飾子をプライベートとして指定することはできません。
第二に、インターフェイス型のオブジェクトを開始することはできますが、インターフェイスはそれを実装するクラスによって実現され、継承されません。また、同じパッケージに含まれていない関連のないさまざまなクラスによってインターフェイスが実装(実現)される可能性があるため、保護されたアクセス修飾子も有効ではありません。したがって、アクセス修飾子については、パブリックチョイスのみが残されています。
3番目に、インターフェイスには、インスタンス変数やメソッドを含むデータ実装がありません。実装されたメソッドまたはインスタンス変数をインターフェースに挿入する論理的な理由がある場合、それはインターフェースではなく継承階層のスーパークラスでなければなりません。この事実を考慮すると、メソッドはインターフェースに実装できないため、インターフェースのすべてのメソッドは抽象でなければなりません。
第4に、Interfaceは定数をデータメンバーとしてのみ含めることができます。つまり、それらはfinalでなければならず、もちろん最後の定数はそれらの1つのインスタンスのみを保持するために静的として宣言されます。したがって、静的なfinalもインターフェイス定数の必須項目です。
つまり、インターフェイスのパブリック抽象ビフォアメソッドとパブリックスタティックファイナルビフォア定数を使用することは有効ですが、他のオプションがないため、冗長と見なされ、使用されません。