Interfaces

Why the fields in interface are static and final?

Final: Fields cannot be abstract. Thus some value has to be provided and Final is the way.

Static: Because they are final and subclass cannot change the values, they only belong to the interface. Hence static.

Why the methods in interface cannot be defined as static?

Static methods cannot be overridden. They belong to the class. Since Interface.someStaticMethod would not have implementation and implementation would only be for someClassImplementInterface.someStaticMethod, interface has no role here.

Thus the answer.