Final
可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。
Final修饰类
用Final
修饰的类不能被继承。
提示
Remove Final
,由此证明被FInal
修饰的类不可被继承
Final修饰方法
被Final
修饰的方法不能被重写。
仍然提示
Remove Final
,由此可见被FInal
修饰的方法不可被重写
将public
改成private
会如何?
改成
private
后,update
方法变成了私有方法,变不存在重写的问题了,故没有报错。
Final修饰变量
被Final
修饰的变量,在首次初始化后,变量值不可被改变。首次初始化指的是要么在声明时初始化,要么在构造函数中初始化。
初始化
public class FinalClass {
private final int i = 0;
private final User user = new User();//或 private final User user = null
}
public class FinalClass {
private final int i;
private final User user;
//private final User user = null;//设置成null也算初始化了,只可声明
public FinalClass(int i) {
this.i = i;//或直接赋值 this.i = 0;
user = new User();
}
}
普通变量更新
引用变量更新
对象也属于变量,不同的是对象值可变,引用地址不能变。
由此可见,变量值可更改,但不能重新
new