final代表最终,不可修改,之前也遇到过,没有细讲
final可以修饰类,方法,局部变量,成员变量,下面我们逐一进行介绍
final修饰类
格式 public final class 类名{...}
被final修饰的类不能有子类,换言之就是太监类,但是其可以有父类,其实我们常用的有些工具类也是final修饰的,如Math,Array,只用类名调用就行了


如上,尝试继承final的修饰类报错
final修饰成员方法
格式 修饰符 final 返回值 函数名(参数列表){...}
方法一旦被设置为final,子类就无法修改复写


如上,方法设置成final,子类无法复写
abstract,final不能同时使用,因为abstract是抽象方法要被复写,而final又不让复写
final修饰局部变量

局部变量是函数里定义的变量,也包括参数列表里的变量,我们定义final就不能修改其变量值,如上
即使赋值原值相同也不行,即final只能赋值一次

如上,我们只赋值一次是可以的
对于基本类型变量,不可变是其数值不能变化再赋值,对于引用类型来说,是其地址不能变化
final修饰成员变量
我们知道成员变量只声明其值为默认值,如果我们给成员变量加上final,则必须手动赋值,因为取消了默认值的给与,如下

我们可以在构造方法里对其进行赋值,但是同样要求只能且必须赋值一次,对于成员变量被final修饰,不能使用setter方法,当然也是这个道理
网友评论