在 Java 中,final
关键字有多种用途,具体取决于它应用的上下文。下面是 final
在不同情况下的含义,以及它对类成员变量的影响:
1. final
修饰类
当一个类被声明为 final
时,这个类不能被继承。例如:
在这个例子中,A
类是 final
的,因此其他任何类都不能继承它。
2. final
修饰方法
当一个方法被声明为 final
时,这个方法不能被子类重写。例如:
在这个例子中,fun()
方法是 final
的,因此子类不能重写它。
3. final
修饰变量
当一个变量被声明为 final
时,这个变量的值在初始化之后就不能再被修改了。
a. final
修饰基本数据类型的变量
如果是基本数据类型,final
变量的值一旦赋值后就不能改变。例如:
在这个例子中,x
是 final
的,赋值后不能再被修改。
b. final
修饰引用类型的变量
如果 final
修饰的是引用类型(例如对象、数组),那么引用的地址不能改变,但对象的内部状态可以改变。例如:
在这个例子中,sb
是 final
的,因此我们不能再将 sb
指向一个新的 StringBuilder
对象,但可以修改 sb
引用的对象的内容。
总结:
final
类:不能被继承。final
方法:不能被子类重写。final
变量:初始化后不能再改变值。对于引用类型,引用不能改变,但对象内部状态可以修改。