popov . dev

Main

Library

Articles

Ключевое слово f...

Ключевое слово final в Java

В этой статье мы узнаем о final переменных, методах и классах Java на примерах. В Java ключевое слово final используется для обозначения констант. Его можно использовать с переменными, методами и классами. Как только какая-либо сущность (переменная, метод или класс) объявлена как final, она может быть назначена только один раз. То есть:

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

final переменная Java

В Java мы не можем изменить значение final переменной. Например:

class Main {
    public static void main(String[] args) {

        // создание final переменной
        final int AGE = 32;

        // попытка изменить ее значение
        AGE = 45;
        System.out.println("Age: " + AGE);
    }
}

В приведенной выше программе мы создали final переменную с именем age. И мы попытались изменить значение final переменной.

Когда мы запустим программу, мы получим сообщение об ошибке компиляции со следующим сообщением.

cannot assign a value to final variable AGE
    AGE = 45;
    ^
Примечание: рекомендуется использовать верхний регистр для объявления final переменных в Java.

final метод Java

В Java метод final не может быть переопределен дочерним классом. Например:

class FinalDemo {
    // создание final метода
    public final void display() {
        System.out.println("Это final метод.");
    }
}

class Main extends FinalDemo {
    // попытка переопределения final метода
    public final void display() {
        System.out.println("final метод был переопределен.");
    }

    public static void main(String[] args) {
        Main obj = new Main();
        obj.display();
    }
}

В приведенном выше примере мы создали метод final с именем display() внутри класса FinalDemo. Здесь класс Main наследует класс FinalDemo.

Мы попытались переопределить метод final в классе Main. Когда мы запустим программу, мы получим сообщение об ошибке компиляции со следующим сообщением.

display() in Main cannot override display() in FinalDemo
  public final void display() {
                    ^
  overridden method is final

final класс Java

В Java final класс не может быть наследован другим классом. Например:

// создание final класса
final class FinalClass {
    public void display() {
        System.out.println("Это final метод.");
    }
}

// Попытка наследовать final класс
class Main extends FinalClass {
    public void display() {
        System.out.println("final метод был переопределен.");
    }

    public static void main(String[] args) {
        Main obj = new Main();
        obj.display();
    }
}

В приведенном выше примере мы создали final класс с именем FinalClass. Здесь мы попытались наследовать final класс в классе Main.

Когда мы запустим программу, мы получим сообщение об ошибке компиляции со следующим сообщением.

cannot inherit from final FinalClass
class Main extends FinalClass {
                   ^

Comments

In order to leave your opinion, you need to register on the website