final关键字
final关键字在Java中是一个保留的关键字,一旦将引用声明为final类型,则不能改变这个引用。
一. 修饰变量
final关键字修饰的成员变量或本地变量都称为常量。主要运用于以下两个地方:
(1)编译期常量,永远不可改变,只能使用基本类型,且必须在定义时进行初始化。
(2)运行期间。我们希望它可以根据对象的不同而表现不同,但同时又不希望它被改变。可以是基本类型,也可以是引用类型。基本类型不可变的是其内容,引用类型不可变的是引用,内容是可变的。
二.修饰方法
final关键字修饰的方法不可被子类重写。
三.修饰类
final关键字修饰的类不可被继承。
四.修饰方法参数
final关键字修饰参数,代表了该参数不可更改,在方法中不可更改该参数的值.
在匿名内部类中,为保持参数的一致性,若所传的方法的形参需要在内部类中使用时,需要声明为final。
简单理解就是,拷贝引用,为了避免引用值发生改变,例如被外部类的方法修改等,而导致内部类得到的值不一致,于是用final来让该引用不可改变。
故如果定义了一个匿名内部类,并且希望它使用一个其外部定义的参数,那么编译器会要求该参数引用是final的。