Java 裏的 final 關鍵字定義的變量:不能修改(只能給一次賦值);
例如:
public class A{
public final StringBuilder sb;
public A() {
sb=new StringBuilder("origin");
}
public A(String s) {
sb=new StringBuilder(s);
}
public final void print(){
//sb=new StringBuilder();//The final field A.sb cannot be assigned
System.out.println(sb.toString());
}
}
Java 裏的 final 關鍵字定義的方法:不能被覆蓋;
例如,一個匿名內部類繼承上面的 A 類:
new A(){
public String s="A var";
@Override
public void print() { //Cannot override the final method from A,此處錯誤
//do sth
}
public void fun(){
System.out.println(s);
}
}.fun();