根據程序上下文,Java關鍵字final有“這是不能改變的”或“final”的意思,可以修改非抽象類、非抽象類成員方法和變量。妳可能因為兩個原因需要停止改變:設計或者效率。
final類不能被繼承,沒有子類,final類中的方法默認為final。
最終的方法不能被子類的方法覆蓋,但是可以被繼承。
最後壹個成員變量表示壹個常量,只能賦值壹次,賦值後值不會改變。
Final不能用於修飾構造函數。
註意:父類的私有成員方法不能被子類方法覆蓋,所以私有類型的方法默認為final類型。
1,期末班
final類不能繼承,所以final類的成員方法沒有機會被覆蓋,默認都是final。在設計類的時候,如果類不需要有子類,類的實現細節不允許改變,並且確定類不會被擴展,那麽就設計成最終類。
2、最後的方法
如果壹個類不允許它的子類覆蓋壹個方法,它可以被聲明為壹個最終方法。
使用最終方法有兩個原因:
首先,鎖定方法以防止任何繼承的類修改它的含義和實現。
第二,效率高。編譯器調用最終方法時,會切換到嵌入式機制,大大提高了執行效率。
例如:
公共類Test1 {
公共靜態void main(String[] args) {
// TODO自動生成方法存根
}
公共void f1() {
system . out . println(" f 1 ");
}
//不能被子類重寫的方法
公共最終void f2() {
system . out . println(" F2 ");
}
公共void f3() {
system . out . println(" F3 ");
}
私有void f4() {
system . out . println(" F4 ");
}
}
公共類Test2擴展了Test1 {
公共void f1(){
系統。out.println ("Test 1父類方法f1被覆蓋!");
}
公共靜態void main(String[] args) {
test2t = new test 2();
t . f 1();
t . F2();//調用從父類繼承的最終方法。
t . F3();//調用從父類繼承的方法
//t . F4();//調用失敗,無法從父類繼承。
}
}