Java學習之final關鍵字
阿新 • • 發佈:2018-12-15
我們一起學貓叫,一起喵喵喵喵喵~~~~~~~
嘿嘿嘿,你們可愛的小北又回來啦
今天我們講什麼呢?看題目就知道啦,我們要研究的就是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不能再賦新值了。