final 可以修饰类 属性 方法 和局部变量
使用到final的情况:
1.当不希望类被继承时
2.当不希望父类的某个方法被子类重写时
3.当不希望类的某个属性的值被修改时
4.当不希望某个局部变量被修改时
使用细节:
1.final修饰的属性又叫做常量;一般命名:XX_XX_XX
2.final修饰的属性在定义时,必须赋值,并且以后不能在修改,赋值可以在如下的位置之一:
(1)定义时 ,如 : public final double TAX_RATE = 0.08;
(2)在构造器中
(3)在代码块中
3.如果final修饰的属性是静态的,则初始化的位置只能是 定义时 或者 在静态代码块中。 不能在构造器中赋值
4.final类不能继承 但是可以实例化对象
5.如果类不是final类,但是含有final 方法,则该方法虽然不能重写,但是可以被继承
6.一般来说,如果一个类已经是final类了,就没有必要再将方法修饰成final方法
7.final不能修饰构造方法
8.final和static往往搭配使用,效率更高,不会导致类加载,底层编译器做了优化处理
9.包装类(Integer、Double、Float、Boolean等都是final),String也是final类