23 final關鍵字(完結器)
本質
不可以被修改--------定義的都是最終版本
//記住final和abstract是死對頭,不能同時出現在一個類或一個方法上
常規用法
1.修飾類(無法被繼承)
final class A{
}
//類A不能被繼承
2.在類中修飾屬性(常量)
class A{
public final String NAME="張三";
//被final的屬性都稱爲常量,無static叫局部常量,有static的叫全局常量
}
3.在類中修飾方法(不能被重寫)
class B{
public final void print(){
System.out.println("final關鍵字與abstract關鍵字具有互斥性")
}
}
所以abstract與final不能同時修飾方法,典型錯誤如下所示:
4.在類中與static搭配修飾屬性(全局常量)
class C{
public static final String NAME="張三";
//好處在於類c的NAME可以直接通過類名.常量名調用,而之前類A中的NAME不行
}
典型體現
Math類(不允許被繼承)
Math中的常量希望能通過類名.常量名的形式調用