Final
• От final классов нельзя наследоваться. Соответственно методы такого класса не будут переопределены. Пример: класс
• Final методы нельзя переопределять в подклассах. Методы нужно делать final, когда мы хотим, чтобы их реализация не изменялась.
• Final переменные не могут быть изменены: примитивам нельзя присвоить другое значение, ссылочным - ссылку на другой объект.
• Если final переменная содержит ссылку на объект, то объект можно изменять, но переменная всегда будет ссылаться на тот же самый объект.
• Final аргументы метода предназначены только для чтения. Если попытаться изменить их, то произойдет ошибка компиляции.
• Конструктор не может быть static, abstract или final
• От final классов нельзя наследоваться. Соответственно методы такого класса не будут переопределены. Пример: класс
String
.• Final методы нельзя переопределять в подклассах. Методы нужно делать final, когда мы хотим, чтобы их реализация не изменялась.
• Final переменные не могут быть изменены: примитивам нельзя присвоить другое значение, ссылочным - ссылку на другой объект.
• Если final переменная содержит ссылку на объект, то объект можно изменять, но переменная всегда будет ссылаться на тот же самый объект.
• Final аргументы метода предназначены только для чтения. Если попытаться изменить их, то произойдет ошибка компиляции.
• Конструктор не может быть static, abstract или final