final類
final類
final是java中的一個關鍵字,可以用來修飾變數、方法和類。用關鍵詞final修飾的域成為最終域。用關鍵詞final修飾的變數一旦賦值,就不能改變,也稱為修飾的標識為常量。如果一個類的域被關鍵字final所修飾,它的取值在程序的整個執行過程中將不會改變。
假如說整個“類”都是final,就表明自己不希望從這個類繼承,或者不答應其他任何人採取這種操作。換言之,出於這樣或那樣的原因,我們的類肯定不需要進行任何改變;或者出於安全方面的理由,我們不希望進行子類化(子類處理)。
除此以外,我們或許還考慮到執行效率的問題,並想確保涉及這個類各對象的所有行動都要儘可能地有效。
目錄
舉例
如下所示:
class SmallBrain {}
final class Dinosaur
{
int i = 7;
int j = 1;
SmallBrain x = new SmallBrain();
void f() {}
}
public class Jurassic
{
{
Dinosaur n = new Dinosaur();
n.f();
n.i = 40;
n.j++;
}
}
注意數據成員既可以是final,也可以不是,取決於我們具體選擇。應用於final的規則同樣適用於數據成員,無論類是否被定義成final。將類定義成final后,結果只是禁止被繼承——沒有更多的限制。然而,由於它禁止被繼承,所以一個final類中的所有方法都默認為final。因為此時再也無法覆蓋它們。所以這與我們將一個方法明確聲明為final一樣。
可為final類內的一個方法添加final指示符,但這樣做沒有任何意義。