Shannon,
Perhaps the
Java Language Specification will make it clearer:
Every field declaration in the body of an interface is implicitly public, static, and final. It is permitted to redundantly specify any or all of these modifiers for such fields.
It's not a compiler error to redundantly specify any or all of the implicitly modifiers for a field in an interface, because the JLS explicitly says it's permitted.
As a matter of personal preference, I recommend redundantly specifying the implicit modifiers, to make it easy and clear to anybody reading the code, instead of expecting everyone to remember all these rules. But it's very important to understand them.