在Java中,final 关键字是一个非常有用的特性,它可以应用于类、方法和变量。使用 final 关键字可以确保被标记的对象具有某些特定的属性,这些属性有助于增强代码的安全性和可读
-
Final 类
当一个类被声明为 final 时,意味着这个类不能被继承。这通常用于创建那些不需要或不允许被扩展的类。例如,标准库中的 String 类就是一个 final 类,它不能被继承,这样可以保证字符串对象的行为一致性,防止潜在的错误或安全问题。像String这种不想被别人重写和继承的类就是用final来修饰的 -
Final 方法
在一个类中,如果某个方法被声明为 final,那么该方法就不能被其子类重写(覆盖)。这样做可以保护方法不受子类的影响,保持父类定义的方法行为不变。通常情况下,当我们希望防止方法的行为被改变或者该方法实现了关键功能时,会将方法声明为 final。 -
Final 变量
对于变量来说,final 关键字意味着一旦给变量赋值后,这个值就不能再被改变。这意味着 final 变量只能被初始化一次。对于基本类型,这意味着值本身是不可变的;对于引用类型,则意味着引用不能再指向另一个对象,但是所指向的对象内部的状态是可以变化的。
基本数据类型:如 int, char 等,一旦赋值后,值不能更改。
引用数据类型:如数组、对象等,一旦指向某个对象后,不能重新指向其他对象,但是对象本身的属性是可以修改的。
使用场景
当你希望确保某个类的行为不被任何子类修改时,可以将整个类声明为 final。
如果你不希望某个方法的行为被子类改变,可以将该方法声明为 final。
对于那些不应该被修改的变量,比如常量,可以使用 final 关键字来定义它们。