Java. Определение констант в интерфейсе

В Java разрешается объявлять и использовать константы в интерфейсах. Используя такой подход, Вы гарантируете, что любой класс, который реализует интерфейс, будет иметь доступ к одной и той же константе.
![]() |
Необходимо запомнить одно правило, относительно объявления констант в интерфейсах. |
Они всегда должны быть public static final.
Звучит просто, не так ли? После всего, интерфейсные константы ничем не отличаются от других констант, доступных из других мест и классов. Любая переменная, определенная в интерфейсе - должна быть public.
Значение константы нельзя изменить. Как только ей было присвоено значение, его уже нельзя модифицировать. Присваивание происходит в самом интерфейсе (где определена константа), поэтому класс, реализующий интерфейс, может доступаться к ней и использовать ее, но только как значение "только для чтения".
Выражение BAR = 27 не скомпилируется.
Материалы, которые могут вас заинтересовать
- Java. Вложенные классы в методах
- Java. Создание объекта вложенного класса извне внешнего класса
- Java. Создание объекта вложенного класса изнутри внешнего класса
- Java. Создание объекта вложенного класса
- Java. Создание "регулярного" вложенного класса
- Java. Вложенные классы (Inner Classes)
- Java. Создание обобщенных методов
- Java. Обобщенные типы (Generic Declarations)
- Java. Использование карт (Using Maps)








> Они всегда должны быть public static final.
Я думаю эту фразу лучше сказать как:
Они всегда будут public static final и незачем это дополнительно указывать.
Во вторых на моей практике часто попадаются интерфейсы тупо без методов а только с константами. Имплементить интерфейс ради констант считается плохим стилем, для этого лучше использовтаь import static.
А поскольку статические импорты можно применять и к обычным классам то лучше всего константы объявлять в публичных финальных классах у которых конструктор определён как приватный. Тогда можно гарантировать что от него не унаследуются.
Т.е.
FooОтправить комментарий