Interface is the backdoor for Java object that is already an extension of another object.
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.
More HERE. The reason is simple: Interface cannot be "instantiated" on itself, therefore all declared variables must be public, static, and final.