Есть интерфейс SimpleObject с public final String NAME = "SimpleObject"; Есть интерфейс Button, который наследуется от SimpleObject. И там также есть public final String NAME = "Submit". Так как константы, то перезаписать нельзя. System.out.println(SimpleObject.NAME); как работает эта строка - понятно System.out.println(Button.NAME); как работает эта строка - не понятно По логике interface Button extends SimpleObject содержит public final String NAME = "SimpleObject"; public final String NAME = "Submit"; почему допустимо содержание двух констант с одинаковым именем и как компилятор понимает, какую вызвать? Вторая (дочерняя) затеняет родительскую или как?