Рассмотрим следующий интерфейс в Java:
public interface I {
public final String KEY = "a";
}
И следующий класс:
public class A implements I {
public String KEY = "b";
public String getKey() {
return KEY;
}
}
Почему возможно, чтобы класс А пришел и переопределил конечную константу интерфейса I?
Попробуйте сами:
A a = new A();
String s = a.getKey(); // returns "b"!!!