Ключевое слово 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 {
^
Комментарии
Для того чтобы оставить свое мнение, необходимо зарегистрироваться на сайте