I have read that constant values defined in an interface are implicitly public, static, and final.If it so then why can't we assign a value of it inside a interface in static blocks. Where in we can do the same thing in classes inside static blocks.
Interface Example:[Throws Error]
interface Test{
int x;
static{
x=20;
}
}
Class Example:[Works Fine]
class Test{
public static final int x;
static{
x=20;
}
}
Please tell me the reason of this behavior? If you find this question as duplicate please mark it so I will check.