final關鍵字的用法


---恢復內容開始---

Java中,final關鍵字可以用來修飾類、方法和變量(包括成員變量和局部變量)。下面就從這三個方面來了解一下final關鍵字的基本用法。

 1、修飾類

  當用final修飾一個類時,表明這個類不能被繼承。也就是說,如果一個類你永遠不會讓他被繼承,就可以用final進行修飾。

    final類中的成員變量可以根據需要設為final但是要注意final類中的所有成員方法都會被隱式地指定為final方法。

   例如,創建一個類的前提下:

1 final class person{
2   public people(){
3 
4 }  
5 }
6 
7 class man extends people{
8 
9 }

 

  結果會報錯,類型man不能成為people的子類;

  2、修飾方法

 

   在使用final時,注意,只有在想明確禁止該方法在子類中被覆蓋的情況下才將方法設置為final。final修飾的方法表示此方法

   已經是最后的、最終的含義,亦即此方法不能被重寫(可以重載多個final修飾的方法)。此處需要注意的一點是:因為重

   寫的前提是子類可以從父類中繼承此方法,如果父類中final修飾的方法同時訪問控制權限為private,將會導致子類中不能

   直接繼承到此方法,因此,此時可以在子類中定義相同的方法名和參數,此時不再產生重寫與final的矛盾,而是在子類中重

   新定義了新的方法(注:類的private方法會隱式地被指定為final方法。)

   

public class b extends a{
   public static void main(String args[]){
        

}

    public void getName(){

    }

}       

class a {

      private final void getName(){

}  
/*
因為private修飾,子類不能繼承此方法,因此,子類中的getName是重新編譯的,屬於正常;
*/
     
     public final void getName(){

}

     /*
        因為public修飾,子類可以繼承,與final矛盾,導致重寫了final方法,編譯錯誤。
    
*/  
}        

 

  3、修飾變量

   final修飾變量只能被賦值一次,賦值后不再改變。

    final修飾成員變量,必須初始化方法。

    當函數的參數類型是final時,說明該參數是只讀型,不能被更改;

    

 1 class man{
 2 
 3 priavate final int i = 0;
 4 
 5     public man(){
 6         i = 1;
 7        //i等於1報錯;
 8         final Object obj =new Object();
 9         obj = new Object();
10       //obj報錯;
11 
12 }
13 
14 }        

 

---恢復內容結束---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM