final关键字
- final修饰的类不能被继承
- final修饰的方法不能被重写
- final修饰的变量不可以被改变 (不变的是变量的引用,而不是该引用指向的对象)
写一段代码来验证一下第三点:
public class Demo {
private String string;
public Demo(String string) {
this.string = string;
}
public void setString(String string) {
this.string = string;
}
public String getString() {
return string;
}
public static void main(String[] args) {
final Demo demo = new Demo("1");
demo.setString("2");
demo = new Demo("3");
}
}
可以看到19行将final变量demo中的String改变了,
而21行报Cannot assign a value to final variable ‘demo’,证明了第三点