Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量.
- final类不能被继承,没有子类,final类中的方法默认是final的。
- final方法不能被子类的方法覆盖,但可以被继承。
- final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
- final不能用于修饰构造方法。
final数据:
- 一个永不改变的编译时常量。
- 一个在运行时被初始化的值,而之后无法被改变;
- 一个既是static又是final的域:是一段不能改变的存储空间;
final类型运用于数据:
- 基本数据类型(int、double、char...)运用final时,使数值恒定不变;
- 对象引用运用final时,final使得引用恒定不变,引用内部的数据若不是final型,可以进行修改。
- 数组类型运用final时,final使得数组引用恒定不变,数组内部的数据若不是final型,可以进行修改。
final与static
- final指明数据为一个常量,恒定无法修改;
- static指明数据只占用一份存储区域;