Relevant bit of spec:
https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.3
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.
You are only allowed to redundantly affirm that you want public, trying to change it results in a compile-time error.
Private would be almost completely pointless (the implementing class would not be able to see the field).
If you say nothing you get public instead of the usual "package" visibility.
And you are prevented from specifying protected. Not sure if there is a valid use-case for wanting that.