在Java中,final关键字有多个用途,它可以用来修饰类、方法、变量等,具体作用如下:
-
不可继承: 当
final关键字用于修饰一个类时,表示这个类是最终类,不能被其他类继承。这样的类通常被设计为不希望有子类继承或者出于安全性考虑,确保类的完整性。final class FinalClass { // 类的内容 } -
不可重写: 当
final关键字用于修饰一个方法时,表示这个方法是最终方法,不能被子类重写。这在设计模式中的一些场景中很有用,例如确保某个算法的实现不被修改。class Parent { final void finalMethod() { // 方法的内容 } } class Child extends Parent { // 尝试重写 finalMethod 会导致编译错误 } -
不可改变: 当
final关键字用于修饰一个变量时,表示这个变量是常量,其值在初始化后不能被修改。常量通常使用大写字母命名,多个单词之间用下划线分隔。final int MAX_VALUE = 100;如果是引用类型的变量,
final关键字表示这个引用变量不能再指向其他对象,但被指向的对象本身是可以修改的。final List<String> myList = new ArrayList<>(); myList.add("Item 1"); // 可以修改对象 // myList = new ArrayList<>(); // 不能再指向其他对象
final关键字提供了一种在代码中强制执行不可改变性的机制,这有助于提高程序的可读性、可维护性,并在一些情况下提供性能优化的机会。