English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве мы将通过 примеры изучим final переменные, final методы и final классы в Java.
В Java, ключевое слово final используется для обозначения констант. Оно может использоваться с переменными, методами и классами.
Любой объект (переменная, метод или класс), объявленный final, может быть присвоен только один раз. То есть,
final переменная не может быть перинициализирована другим значением
final метод не может быть перезаписан
final класс не может быть наследован
В Java, мы не можем изменить значение final переменной. Например,
class Main { public static void main(String[] args) { // Создание final переменной final int AGE = 32; // Попытка изменить final переменную AGE = 45; System.out.println("Age: " + AGE); } }
В примере выше, мы создали final переменную с именем age. И мы пытаемся изменить значение final переменной.
При запуске программы появится следующая ошибка, указывающая на компиляционную ошибку.
cannot assign a value to final variable AGE AGE = 45; ^
Внимание:Рекомендуется использовать верхний регистр для объявления final переменных в Java.
Прежде чем понять final методы и 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() в Main не может переопределять display() в FinalDemo public final void display() { ^ overridden method is final
В Java, класс final не может быть наследован другим классом. Например,
final class FinalClass {}} // Создать final метод public void display() { System.out.println("Это final метод."); } } class Main extends FinalClass { // Попробовать переопределить final метод 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 { ^