談一談java語言中的final關鍵字
阿新 • • 發佈:2018-11-03
final關鍵字在java中的應用十分的頻繁,而且就我個人而言,我容易把它和static這個關鍵字混淆,下面來總結一下他的應用範圍。
final關鍵字的基本用法
1、修飾類
凡是被final修飾的類,都是不可以被繼承的。如果你有一個需求,需要定義一個類,而這個類不允許被其他類繼承的時候,你就可以通過final關鍵字來實現。請看下面這個例子。
public final class Person {
String name;
int age;
}
我定義了一個final修飾的類Person,接下來我建立一個Student類繼承這個類讓他繼承Person類看看效果。
你的IDE就會給你報錯。無法通過編譯。
2、修飾變數
用final修飾的過的變數是無法在後續的操作中改變其值的,所謂的變數也就是帶有名字的常量而已。
概念聯絡
常量可以分為:字面值常量,自定義常量
那麼自定義常量如何定義呢,請看下面這段程式碼:
public class Demo1 {
public static final double PI=3.1415926;
public static void main(String[] args) {
}
}
這裡定義一個比較常用的常量π,他的值時不能被修改的,如果修改請看下圖:
上面這個概念是final修飾的基本資料型別,下面這個例子,用final修飾引用資料型別,看一下效果。
我先建立了一個student物件,然後又建立了一個student1,然後我將student1的地址值賦給student,這個時候就會報錯。可見,用final修飾過的引用資料型別的地址值在後面的操作中是不可以被修改的。
3、修飾方法
存在繼承關係的兩個類,父類中方法被final修飾,子類就無法重寫父類的該方法。
補充:方法重寫
方法重寫是指,子類重新定義父類中已有方法,其方法名稱,引數列表,返回值均不發生改變。
方法重寫的前提:必須存在繼承關係。
注意事項:子類的方法許可權修飾符等級必須大於等於父類方法的全新修飾符。(例如父類方法是預設修飾符,子類重寫該方法可使用預設或者public修飾)