final关键字

发布时间 2023-09-04 11:51:52作者: 星流残阳

final在修饰类、方法、和变量时意义不通,但最终本质是一样的:不可改变的,最终的。

变量

  • final在修饰变量时表示常量,只能赋值一次,但是final所修饰局部变量和成员变量有所不同:

    1. final修饰的局部变量在使用之前被赋值一次才能使用。
    2. final修饰的成员变量在声明时没有赋值的叫“空白final变量”。空白final变量必须在构造方法或静态代码块中初始化。
  • final在修饰基本类型和引用类型变量的区别:

    1. final修饰基本类型时,此常量无法再改变值。
    2. final修饰引用类型时,只是引用地址无法再进行改变,此地址对应的数据依旧可变。

方法

final修饰方法时表示此方法不可被重写,即子类无法重写父类中final修饰的方法。

final修饰的类无法被继承。final类中的成员可以加上final修饰符,也可以不加。对于final类中的方法,本身必然也是final类型,所以可以不加。