1. 程式人生 > >Java學習之final關鍵字

Java學習之final關鍵字

我們一起學貓叫,一起喵喵喵喵喵~~~~~~~

嘿嘿嘿,你們可愛的小北又回來啦

今天我們講什麼呢?看題目就知道啦,我們要研究的就是java中的final關鍵字

首先上思維導圖:

各位小可愛有木有jio的,今天的內容很少呢!嘿嘿嘿

【1】為什麼要用final這個關鍵字?

原因:由於繼承中有一個方法重寫的現象(具體方法重寫的細節,請參考小北上一篇部落格),而有時候我們不想讓子類去重寫父類的方法,對於這種情況java就給我們提供了一個關鍵字:final

【2】final概述:final關鍵字是最終的意思,可以修飾類,變數,成員方法。

【3】final修飾特點:

A:修飾類:被修飾類不能繼承

B:修飾方法:被修飾的方法不能重寫

C:修飾變數:被修飾的變數不能被重寫賦值,因為這個量其實是一個常量

D:修飾基本型別:基本型別的值不能改變

E:修飾引用型別:地址值不能改變

這個時候,有的小可愛可能還不太懂,小北給大家舉個例子吧。

public class MyDemo4 {
    public static final int NUMBER=500;//公共的靜態常量
    public static void main(String[] args) {
        //final 最終的 可以修飾變數,可以修飾類,可以修飾方法
        // final 修飾變數,變數就稱為常量
        //常量:字面值常量,自定義常量 常量的名稱字母大寫
       final int NUM=100; //自定義常量
        System.out.println(NUM);
        System.out.println(NUMBER);
    }
}

這裡的NUM和NUMBER都是被final 修飾的 因此不能被修改

再看一個例子:

這是父類,final修飾了一個方法

public class Fu{
    public void show()    {System.out.println("fushow"); }

    //final 修飾方法後,修飾之後此方法不能被子類重寫
    public final void showfinal(System.out.println("fushow"););


}

這是一個子類,是父類的繼承類

public class Zi extends Fu{
    
    @Override
    public void show() {System.out.println("子show");}

}

再加一個測試類

public class Test{
    public static void main(String[] args){

    new Zi().showFinal();
    final int num=100;

    //final引用資料型別,指的是這個引用的地址值不能再改變了

    final Zi  zi = new  Zi();
    //zi=new Zi();報錯不能再賦值了

}



}

這個時候小北來測試一下:

如果這個時候,要再給zi 來new一個新Zi的話就會報錯了,如下

顯示final修飾的zi不能再賦新值了。