final類與final方法

2021-07-10 08:22:51 字數 1115 閱讀 5306

final---用於類、方法前。 

final類---不可被繼承。 

final方法---不可被覆蓋。 

final類不能被繼承。 

如果我們不希望乙個類被繼承,我們使用final來修飾這個類。這個類將無法被繼承。比如我們設定的math類,涉及了我們要做的數學計算方法,這些演算法也沒有必要修改,也沒有必要被繼承,我們把它設定成final型別。

複製**

**如下:

<? 

//宣告乙個final類math 

final class math  } 

$math = new math(); 

echo $math; 

//宣告類supermath 繼承自 math類 

class supermath extends math  

//執行會出錯,final類不能被繼承。 

?> 

程式執行結果

複製**

**如下:

fatal error: class supermath may not inherit from final class (math) in e:\phpprojects\test.php on line 14

final方法不能被重寫 

如果不希望類中的某個方法被子類重寫,我們可以設定這個方法為final方法,只需要在這個方法前加上final修飾符。 

如果這個方法被子類重寫,將會出現錯誤。 

複製**

**如下:

<? 

//宣告乙個final類math 

class math 

public final function max($a,$b)  } 

//宣告類supermath 繼承自 math類 

class supermath extends math   } 

//執行會出錯,final方法不能被重寫。 

?> 

程式執行結果 

複製**

**如下:

fatal error: class supermath may not inherit from final class (math) in e:\phpprojects\test.php on line 16

Final類和Final方法

終止繼承 final類 當關鍵字final用來修飾類時,其含義是該類不能在派生子類。換句話說,任何其他類都不能繼承用final修飾的類,即使該類的訪問限制為public型別,也不能被繼承 否則,將編譯報錯。可以繼承的其他類。什麼時候應該使用final修飾類呢?只有當需要確保類中的所有方法都不被重寫時...

final方法和類

final方法 將方法宣告為final那有兩個原因,第一就是說明你已經知道這個方法提供的功能已經滿足你要求,不需要進行擴充套件,並且也不允許任何從此類繼承的類來覆寫這個方法,但是繼承仍然可以繼承這個方法,也就是說可以直接使用。第二就是允許編譯器將所有對此方法的呼叫轉化為inline 行內 呼叫的機制...

PHP 物件導向 final類與final方法

如果我們不希望乙個類被繼承,我們使用final來修飾這個類。final可以用於類 方法前,則類不可以被繼承,方法不可以被過載。比如我們設定的math類,涉及了我們要做的數學計算方法,這些演算法也沒有必要修改,也沒有必要被繼承,我們把它設定成final型別。如下 宣告乙個final類math fina...