final可以修饰变量,被final修饰的变量被赋初始值后,不能对它进行重写赋值;
final可以修饰方法,被final修饰的方法不能被重写;
final可以修饰类,被final修饰的类不能派生子类。
被final修饰的实例变量必须显式指定初始值,而且只能在如下3个位置指定初始值。
定义final实例变量时指定初始值;
在非静态初始化块中为final实例变量指定初始值;
在构造器中为final实例变量指定初始值。
对于普通实例变量,java程序可以对它执行默认的初始化,也就是将实例变量的值指定为默认的初始值0或null,但对于final实例变量,则必须由程序员显式指定初始值。