在java中,可能使用到final关键字修饰的有数据、方法和类。
一、final 修饰数据
有final修饰的数据是用来告诉编译器一块数据是恒定不变的,有时数据恒定不变是很有用的,比如:
1.一个永不改变的编译时常量。
2.一个在运行时被初始化的值,但是又不希望它被改变。
编译时常量必须是基本数据类型,并且以关键字final修饰,在对这个常量进行定义的时候必须进行赋值,并且以后不能被改变。
对于基本类型,final使数值恒定不变;而对于对象引用,final使引用恒定不变,也就是说某个引用不能再指向其他对象了,但是当前指向的这个对象自身的数据是可以改变的。
二、final修饰方法
使用final修饰方法的作用是把方法锁定,以防止任何继承类修改它的含义。在继承类中,使用了与父类用final修饰的方法同名的方法时,并没有覆盖父类的该方法,而是生成了一个新的方法。也就是说final修饰的方法不能被重写。
三、final修饰类
当将某个类定义为final时,就表明了你不打算继承该类,也不允许别人继承。