Ключевое слово final
Ключевое слово final в Java используется для запрета
изменения. Для переменной оно означает, что значение
можно присвоить только один раз. Для метода - что его
нельзя переопределить в дочернем классе. Для класса -
что от него нельзя наследоваться. Ключевое слово
final пишется перед объявлением переменной, метода
или класса.
Синтаксис
final int value = 10; // final переменная
final void method() { } // final метод
final class MyClass { } // final класс
Пример
Давайте объявим final переменную и попробуем
присвоить ей новое значение. Такой код не скомпилируется:
public class Main
{
public static void main(String[] args)
{
final int num = 5;
num = 10; // ошибка компиляции
System.out.println(num);
}
}
Компилятор выдаст ошибку, потому что переменной
с ключевым словом final нельзя повторно
присваивать значение.
Пример
Давайте объявим final переменную и просто
выведем ее значение:
public class Main
{
public static void main(String[] args)
{
final int num = 5;
System.out.println(num);
}
}
Результат выполнения кода:
5
Пример
Давайте попробуем наследоваться от final класса.
Такой код не скомпилируется:
final class Parent
{
}
class Child extends Parent // ошибка компиляции
{
}
public class Main
{
public static void main(String[] args)
{
System.out.println("abcde");
}
}
Компилятор выдаст ошибку, потому что от класса
с ключевым словом final нельзя наследоваться.
Пример
Давайте попробуем переопределить final метод
в дочернем классе. Такой код не скомпилируется:
class Parent
{
final void show()
{
System.out.println("parent");
}
}
class Child extends Parent
{
void show() // ошибка компиляции
{
System.out.println("child");
}
}
public class Main
{
public static void main(String[] args)
{
Child child = new Child();
child.show();
}
}
Компилятор выдаст ошибку, потому что метод
с ключевым словом final нельзя переопределять
в дочернем классе.
Смотрите также
-
ключевое слово
static,
которое делает член класса общим для всех объектов -
ключевое слово
abstract,
которое запрещает создание объекта класса -
ключевое слово
extends,
которое наследует один класс от другого -
ключевое слово
inheritance,
которое описывает наследование классов