一、final修饰类
- 当不希望类被继承时,可以用final修饰。
- 一个类不能同时是 abstract 又是 final。abstract 意味着必须扩展类,final 意味着不能扩展类。
二、final修饰方法
- 当不希望父类的某个方法被子类覆盖(override)时,可以用final关键字修饰。
- 一个方法不能同时是 abstract 又是 final。abstract 意味着必须重写方法,final 意味着不能重写方法。
- final方法不能被重写。
三、final修饰成员变量、局部变量
- 当不希望类的某个变量的值被修改,可以用final修饰。如果一个变量是final,则必须赋初值,否则编译出错。
- 不能对final变量再次赋值。
- 在匿名内部类中所有的变量都必须是final的。
- final成员变量必须①声明的时候初始化②或者在构造器中初始化③或者在代码块中初始化,否则会编译报错。