1、final類
不能被繼承,因此
final類
的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會再被擴充套件,那麼就設計為
final類
。 final方法不能被子類的方法覆蓋,但可以被繼承。
publicclass
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資料成員就可以實現依物件而有所不同,卻有保持其恆定不變的特徵。
packageorg.leizhimin;
public
class
test3
/**
* @param args
*/public
static
void
main(string args)
private
void
test()
public
void
test2()
}
4、final引數
當函式引數為final型別時,你可以
讀取使用該引數,但是
無法改變該引數的值
。 注:父類的private成員方法是不能被子類方法覆蓋的,因此private型別的方法預設是final型別的。 final不能用於修飾構造方法。
publicclass
test4
public
void
f1(final
inti)
}
java中的final如何使用和理解
1 final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會再被擴充套件,那麼就設計為final類。final方法不能被子類的方法覆蓋,但可以被繼承。public class test1 ...
java中的final如何使用和理解
1 final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會再被擴充套件,那麼就設計為final類。final方法不能被子類的方法覆蓋,但可以被繼承。public class test1 ...
java中的final如何使用和理解
1 final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會再被擴充套件,那麼就設計為final類。final方法不能被子類的方法覆蓋,但可以被繼承。2 final方法 如果乙個類不允許其...