java中的final如何使用和理解

2021-08-28 04:53:27 字數 1247 閱讀 4680

1、final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會再被擴充套件,那麼就設計為final類。 final方法不能被子類的方法覆蓋,但可以被繼承。

public class test1  

public void f1()  

//無法被子類覆蓋的方法 

public final void f2()  

public void f3()  

private void f4()  

} public class test2 extends test1  

public static void main(string args)  

}2、final方法 如果乙個類不允許其子類覆蓋某個方法,則可以把這個方法宣告為final方法。 使用final方法的原因有二: 第

一、把方法鎖定,防止任何繼承類修改它的意義和實現。 第

二、高效。編譯器在遇到呼叫final方法時候會轉入內嵌機制,大大提高執行效率。

3、final變數(常量) 用final修飾的成員變數表示常量,只能被賦值一次,賦值後值無法改變! final修飾的變數有三種:靜態變數、例項變數和區域性變數,分別表示三種型別的常量。 從下面的例子中可以看出,一旦給final變數初值後,值就不能再改變了。 另外,final變數定義的時候,可以先宣告,而不給初值,這種變數也稱為final空白,無論什麼情況,編譯器都確保空白final在使用之前必須被初始化。但是,final空白在final關鍵字final的使用上提供了更大的靈活性,為此,乙個類中的final資料成員就可以實現依物件而有所不同,卻有保持其恆定不變的特徵。public class test3  

/** 

* @param args 

*/ public static void main(string args)  

private void test()  

public void test2()  

}

4、final引數 當函式引數為final型別時,你可以讀取使用該引數,但是無法改變該引數的值。 注:父類的private成員方法是不能被子類方法覆蓋的,因此private型別的方法預設是final型別的。 final不能用於修飾構造方法。

public class test4  

public void f1(final int i)  

}

java中的final如何使用和理解

1 final類 不能被繼承,因此 final類 的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會再被擴充套件,那麼就設計為 final類 final方法不能被子類的方法覆蓋,但可以被繼承。public class te...

java中的final如何使用和理解

1 final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會再被擴充套件,那麼就設計為final類。final方法不能被子類的方法覆蓋,但可以被繼承。public class test1 ...

java中的final如何使用和理解

1 final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會再被擴充套件,那麼就設計為final類。final方法不能被子類的方法覆蓋,但可以被繼承。2 final方法 如果乙個類不允許其...