final关键字可以修饰变量,方法,类
final修饰变量,此时变量叫常量, 常量一旦被赋值就不能再改变,变量名一般大写
- 对于不同类型的变量,初始化规则如下:
- 成员变量(包括类的实例变量和静态变量):
- 如果在声明时没有赋值,则必须在构造方法(对于实例变量)或静态初始化块(对于静态变量)中赋值。
- 如果没有在声明时赋值,并且没有在构造方法或静态初始化块中赋值,则会导致编译错误。
- 局部变量(包括方法内的变量和块内的变量):
- 必须在声明时立即赋值,或者在声明之后但在使用之前赋值(对于方法内的
final
变量,这通常意味着在声明时就赋值,因为局部变量在方法执行过程中可能会被多次使用)。 - 如果没有在声明时赋值,并且在使用之前没有赋值,则会导致编译错误。
- 必须在声明时立即赋值,或者在声明之后但在使用之前赋值(对于方法内的
finanl修饰方法时,则这个方法不能被重写,如果一个方法被声明为final,那么在任何继承自包含该方法的类的子类中,都不能重写(override)这个方法。
final修饰类时,那么这个类不能被继承。比如String类。