#### 1. final 關(guān)鍵字 ---- 先來(lái)記重點(diǎn):final 修飾的類(lèi)不能被繼承,final 修飾的方法不能被重寫(xiě) PHP 從 5.x 版本開(kāi)始新增了 final 關(guān)鍵字,它可以在類(lèi)或類(lèi)的方法前面使用,但是不能用來(lái)修飾類(lèi)的屬性 final 的中文含義是:最終的、不可更改的,所以被 final 修飾的類(lèi)稱(chēng)為 ”最終類(lèi)“,被 final 修飾的方法稱(chēng)為 “最終方法” #### 2. final 使用示例 --- 錯(cuò)誤演示:當(dāng)繼承被 final 修飾的類(lèi)時(shí),PHP 會(huì)直接拋出致命錯(cuò)誤 ``` final class A { } class B extends A { } # 致命錯(cuò)誤:類(lèi) B 不能繼承最終類(lèi) A Fatal error: Class B may not inherit from final class (A) in /Users/liang/code/php/1.php on line 9 ``` 錯(cuò)誤演示:當(dāng)重寫(xiě)被 final 修飾的方法時(shí),PHP 會(huì)直接拋出致命錯(cuò)誤 ``` class A { final public function liang() { echo 'vue'; } } class B extends A { public function liang() { echo 'php'; } } # 致命錯(cuò)誤:無(wú)法重寫(xiě)最終方法 A::liang() Fatal error: Cannot override final method A::liang() in /Users/liang/code/php/1.php on line 17 ```