Java深入解析final关键字

在Java中,final 关键字是一个用于声明属性、方法和类的不可变状态的修饰符。final 可以用于变量、方法和类,有助于提高代码的安全性和清晰度。接下来我们将详细探究 final 关键字的各种用途和它们背后的原理。

final 变量

当 final 修饰一个变量时,该变量就成了常量,意味着一旦被初始化后就不能再更改其值。对于基本类型的变量,它的数值不能被更改;对于引用类型的变量,它的引用不能被更改,但是对象本身是可以被修改的。

例子:

final int maxVolume = 100;
final List<String> list = new ArrayList<>();
list.add("Hello");  // 允许
// maxVolume = 101; // 编译错误,不能修改final变量的值
// list = new ArrayList<>(); // 编译错误,不能修改final变量的引用

final 方法

如果一个方法被声明为 final,则不能在子类中被覆盖(重写)。这通常是为了防止子类改变父类中的重要行为的目的,或者稳定类的功能。

例子:

public class Base {
   public final void show() {
       System.out.println("This is a final method.");
   }
}

public class Derived extends Base {
   // 下面的尝试将引发编译器错误
   // public void show() {
   //     ...
   // }
}

final 类

当类被声明为 final 时,它不能被继承。这是出于安全考虑,为了创建一个不可扩展的类,确保它的所有功能都保持不变,常见的例子是 String 类和各种包装类,如 IntegerCharacter 等。

例子:

public final class Utility {
   public static void print() {
       System.out.println("This is a utility class.");
   }
}

// 下面的尝试将引发编译器错误
// public class ExtendedUtility extends Utility {
//     ...
// }
posted @ 2025-09-07 17:04  yijg9998  阅读(17)  评论(0)    收藏  举报