​​Final



• От final классов нельзя наследоваться. Соответственно методы такого класса не будут переопределены. Пример: класс String.

• Final методы нельзя переопределять в подклассах. Методы нужно делать final, когда мы хотим, чтобы их реализация не изменялась.

• Final переменные не могут быть изменены: примитивам нельзя присвоить другое значение, ссылочным - ссылку на другой объект.

• Если final переменная содержит ссылку на объект, то объект можно изменять, но переменная всегда будет ссылаться на тот же самый объект.

• Final аргументы метода предназначены только для чтения. Если попытаться изменить их, то произойдет ошибка компиляции.

• Конструктор не может быть static, abstract или final