如何在Java中使用 final 关键字?
在Java中,final关键字有多种用途,它可以用来定义常量、防止方法被覆盖、防止类被继承和确保对象的不可变性。下面将分别介绍这些用途。
定义常量
在Java中,可以使用final关键字定义常量。被final修饰的变量只能被赋值一次,之后不能再修改。定义常量的方式是在变量声明时使用final关键字,并将其初始化。例如:
final int MAX_VALUE = 100;
这里定义了一个名为MAX_VALUE的常量,它的值为100,一旦初始化后就不能再修改。
防止方法被覆盖
在Java中,子类可以覆盖父类的方法。有时候我们希望某个方法在子类中不能被覆盖,可以使用final关键字修饰方法。被final修饰的方法不能被子类覆盖。例如:
public class SuperClass { public final void method() { System.out.println("This method cannot be overridden."); } }
public class SubClass extends SuperClass { // This method will cause a compilation error, because it tries to override the final method. public void method() { System.out.println("This method is overridden."); } }
防止类被继承
有时候我们希望某个类不能被继承,可以使用final关键字修饰类。被final修饰的类不能被其他类继承。例如:
public final class MyClass { // ... }
public class SubClass extends MyClass { // This code will cause a compilation error, because MyClass is final and cannot be extended. }
确保对象的不可变性
有时候我们希望某个对象的状态不能被修改,可以使用final关键字修饰对象的属性。被final修饰的属性只能在对象创建时被赋值,之后不能再修改。例如:
public class ImmutableClass {
private final int value;
public ImmutableClass(int value) {
this.value = value;
}
public int getValue() {
return value;
}
在上面的例子中,value属性被final修饰,因此它只能在构造函数中被赋值一次,之后不能再修改。这样可以确保对象的状态不会被修改。

