1. 程式人生 > >談一談java語言中的final關鍵字

談一談java語言中的final關鍵字

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修飾)