Any fields on an interface are automatically public static final
. You cannot "implement" a field, that concept does not exist. Interfaces in Java are the definition of the PUBLIC API of a method and thus only contain public method signatures.
I suggest you look into using enumerations or define getters in the interface as rgettman suggests, the constant interface antipattern has way too many downsides. If you do want to use it properly, just look at that link. In short, what the constant interface antipattern really does is just allows for convenient naming of constants in the code. Using a constant interface antipattern is the exact same as using a class with only public static final members, otherwise(and in fact, we have the import static antipattern for this exact purpose, but heed oracle's advice and use sparingly)
Edit:
The reason why you are getting the "not initialized" error is because the field on the interface is, as I said, automatically public static final
regardless of what modifiers you place on it. Since you did not initialize the static final
field, the compiler complains at you.