logo search
АСНИ

Завершённость (final)

Ключевое слово final (финальный) означает разные вещи при описании переменной, метода или класса. Финальное поле класса инициализируется при описании, или в конструкторе класса (а статичное поле — в статичном блоке инициализации) и дальше его значение не может быть изменено. Значения локальных переменных, а также параметров метода, помеченных ключевым словом final, не могут быть изменены после присвоения. Но при этом, их значения могут использоваться внутри анонимных классов. Если статичное поле класса, или переменная проинициализированны константным выражением, они рассматриваются компилятором, как именованная константа; в таком случае их значение может быть использовано в операторах switch (для констант типа int), а также для условной компиляции (для констант типа boolean) при использовании с оператором if.

Метод класса, отмеченный словом final, не может быть переопределён при наследовании. Финальный класс не может иметь наследников вообще.