在Java中,final关键字可以用来修饰类、方法和变量。
1、修饰类
表明这个类不能被继承。
final类中的变量可以根据需要设为final,但是要注意final类中的所有方法都会被隐式地指定为final方法。
2、修饰方法
父类的final方法是不能被子类所覆盖的。
方法不能被重写,但是可以重载多个final修饰的方法。
注:类的private方法会被隐式地指定为final方法。
3、修饰变量
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
当final修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化;如果final修饰一个引用类型时,地址不变、值可以改变,即在初始化之后便不能再指向其他对象了,但该引用所指向的对象内容是可以改变。
final修饰一个成员变量(属性),必须初始化。
两种初始化方式,一种是在变量声明的时候初始化;第二种方法是在声明变量的时候不赋值,但是要在这个变量所在的类的所有的构造函数中对这个变量赋初值。
当函数的参数类型声明为final时,说明该参数是只读型的。即你可以读取使用该参数,但是无法改变该参数的值。