概念:关键字final表示最终的,不可变的。
- 关键字final可以修饰变量、方法,类
- final修饰的类无法被继承
- 当不希望父类的方法被子类覆盖或者重写可以使用final
- 当不希望属性被修改时可以使用final
- 当不希望某个局部变量被修改时可以使用final
- final修饰的变量只能赋一次值
使用细节:
- final修饰的属性又叫常量
- final修饰的属性必须在定义时赋值,并且以后无法修改,赋值位置可在(定义时赋值、构造器赋值、代码块赋值),如果final修饰的属性是静态的,只能使用定义时或者静态代码块赋值,不可使用构造器
- final类不能被继承,但是可以实例化对象
- 如果类不是final类,但是有final方法,该方法虽然不能重写,但是可以被继承
- 一般来说,如果一个类是final类,就没必要修饰成 final 方法了
- final方法不能修饰构造方法,即构造器
- 包装类(Integer,double,float,Boolean,String都是final类),不可改变的