final有三种可能使用到的情况。
一:final数据
当final修饰一个基本数据类型时,意味着这个基本数据类型的对象是一个常量,在这之后不能改变它的值。
当final 修饰对象引用时,例如final Car a = car,说明该对象引用只能指向这一个对象,但是对象的值是可以改变的。
二:final方法
使用final 修饰的方法不能被导出类覆盖。
类中的所有private方法都是隐含的final的。
值得注意的是,“覆盖”是针对某方法是基类的接口的一部分来说的,如果某个方法是private,那么它就不是接口的一部分,他就仅仅是一些隐藏于类中的代码。如果在导出类中使用public ,protected或包访问权限的同名方法时,那就是定义了一个新的方法。
三:final类
如果一个类被final修饰,这个类不能被继承。
final类中的域可以根据个人意愿选择是或者不是final,但是由于类不能被继承,方法已经隐含final了。