這堂課我們來談談關於final關鍵字的概念和用法。
什麼是final關鍵字?
final中文翻譯為“最終的”,“最後的”。在宣告一個類別之前用final關鍵字修飾,說明這個函數將不能在任何子類別中被重載,繼承,也就是說,被final修飾的類別將不能再有子類別。
之前的課程我們說了4種關鍵字,public、private、protected、static,分別是公用、私有、保護、靜態。用法及範例在前面的課程都有,想學習的同學可以參考前面的課程:
下面我們用實例來比較下final和其他關鍵字有什麼不一樣,再來分析下final的用法:
final用法實例詳解:
<?php header("content-type:text/html;charset=utf-8"); class A{ //声明类 public $num = "23"; final function operation(){ //创建方法,用final关键字 echo '上面变量$num数字是 ' . $this->num ; } } class B extends A{ //创建子类B继承A类 public $num = "50"; function operation() { echo '这个变量$num数字是 ' . $this->num ; } } $Num = new B(); //实例化子类 $Num ->operation(); //调用子类中的方法
我們先創建了一個A類,在A類中添加方法,但是在方法前的關鍵字我們用了final,也就是說,A類中的方法operation()將不能再被繼承、重載。接著又建立B類去繼承A類,包括不能被繼承的方法operation(),運行的結果就是只有報錯。
上述範例中禁止了在B類別中重載A類別中的operation()方法。這樣做只會報錯。
如果final寫在類別之前,那麼講禁止整個類別被繼承。例如上面的範例:
final class A{ }
這樣寫,整個A類別都將不能被繼承、重載。
以上是php物件導向之final關鍵字用法及實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!