Когда вы объявляете метод финальным, вы говорите, что метод не может быть переопределен.
Цитата из спецификации языка Java:
Метод может быть объявлен как final, чтобы подклассы не могли его переопределить или скрыть.
Ошибка времени компиляции при попытке переопределить или скрыть последний метод.
Общий лозунг (из-за Джошуа Блоха, я верю):
" Дизайн и документ для наследования или иначе Запретить его "
Таким образом, если вы не намерены позволить подклассам переопределять метод (и потенциально изменить поведение суперкласса (все методы виртуальные в Java)), тогда сделайте метод финальным.