final 关键字
基本概念
final 表示对象是最终形态的,不可改变,即只读。
使用
-
final 修饰属性或变量,无论属性是基本类型还是引用类型,变量里面存放的“值”不能变。此时该变量可被视为常量。
-
final 修饰方法,方法可以被继承,但不能被子类重写;
-
final 修饰类,则该类不可以被继承,如 String, Integer 以及其他包装类。
注意
- 在匿名类中,所有变量都必须是 final 变量。(匿名类)
- 接口中,声明的所有变量本身是 final 的。
- final 和 abstract 这两个关键字是反相关的,final 类就不可能是 abstract 的。
- 声明时未初始化的 final 变量,称为空白 final 变量(blank final variable),必须在构造器中进行初始化,或者调用 this() 初始化,否则,编译器会报错
- 按照 Java 编码规范,final 变量就是常量,而且通常常量名要大写。
- 对于集合对象声明为 final 指的是引用不能被更改。