final可以修饰类,方法,属性和局部变量
- 当不希望类被继承时,用final修饰类
- 当不希望父类某个方法被子类重写时,使用final
- 当不希望某个属性值被修改时
- 当不希望某个局部变量被修改时
final使用注意事项和细节:
- final的属性又叫常量,一般XX_XX命名;
- final的属性在定义时,必须赋予初始值,并且以后不能修改,赋值可以在如下位置:
- 定义时;
- 构造器;
- 代码块;
- 如果final修饰的属性时static,则初始化的位置只能是:
- 定义时;
- 在静态代码块,不能在构造器中赋值;
- final类不能继承,但是可以实例化对象;
- 如果类不是final类,但是含有final方法,则该方法虽然不能被重写,但是可以被继承
- 一般来说,如果一个类已经是final类,就没有必要再将方法修饰为final
- final不能修饰构造方法
- final和static往往配合使用,效率更高,底层编译器做了优化处理
- 包装类(Integer,Double,Float,Boolean都是final),String也是final类
-