在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。
- 修饰类:
当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。 - 修饰方法:
使用final修饰方法时,说明这个方法不允许被重写、修改,相当于“锁定”。 - 修饰变量:
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。当final修饰一个基本数据类型时,表示该基本数据类型的值一旦在初始化后便不能发生变化;如果final修饰一个引用类型时,则在对其初始化之后便不能再让其指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。就如同Snap shot里的双箭头含义一样:不可以指向其他地方。在本质上是一个意思,因为对于引用类型说,引用的值是一个地址,final要求该值,即地址的值不发生变化。
final修饰一个成员变量(属性),必须要显式的初始化。