Почему конечные константы в Java могут быть переопределены?
Рассмотрим следующий интерфейс в 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"!!!