`final`关键字

98 阅读1分钟

在Java中,final关键字有多个用途,它可以用来修饰类、方法、变量等,具体作用如下:

  1. 不可继承:final关键字用于修饰一个类时,表示这个类是最终类,不能被其他类继承。这样的类通常被设计为不希望有子类继承或者出于安全性考虑,确保类的完整性。

    final class FinalClass {
        // 类的内容
    }
    
  2. 不可重写:final关键字用于修饰一个方法时,表示这个方法是最终方法,不能被子类重写。这在设计模式中的一些场景中很有用,例如确保某个算法的实现不被修改。

    class Parent {
        final void finalMethod() {
            // 方法的内容
        }
    }
    
    class Child extends Parent {
        // 尝试重写 finalMethod 会导致编译错误
    }
    
  3. 不可改变:final关键字用于修饰一个变量时,表示这个变量是常量,其值在初始化后不能被修改。常量通常使用大写字母命名,多个单词之间用下划线分隔。

    final int MAX_VALUE = 100;
    

    如果是引用类型的变量,final关键字表示这个引用变量不能再指向其他对象,但被指向的对象本身是可以修改的。

    final List<String> myList = new ArrayList<>();
    myList.add("Item 1"); // 可以修改对象
    // myList = new ArrayList<>(); // 不能再指向其他对象
    

final关键字提供了一种在代码中强制执行不可改变性的机制,这有助于提高程序的可读性、可维护性,并在一些情况下提供性能优化的机会。