1. 程式人生 > >JAVA阻止繼承:final類和方法

JAVA阻止繼承:final類和方法

有時候,為了阻止人們利用某個類定義子類。不允許擴充套件的類被稱為final類。可以將類宣告為final類,也可以將方法設定為final方法,這樣子類就不能覆蓋父類的某個方法(將類宣告為final類只會將其中的所有的方法宣告為final方法)。

public final class A {
    ...
}

 

public class A {
    ...
    public final String getName(){
        return name;
    }
}

final類的另外一個重要應用就是,防止動態繫結使計算機效能消耗太大。如果一個方法沒有被覆蓋並且很短,那麼編譯器就能對他進行優化處理,這個過程又稱為內聯。例如,內聯呼叫e.getName()將被替換為訪問e.name域。然而,如果getName方法在另外一個類中被覆蓋,那麼便一起就無法知道程式碼將會做什麼操作,因此就不能對它進行內聯處理了。