首頁  >  文章  >  後端開發  >  php物件導向之final關鍵字用法及實例

php物件導向之final關鍵字用法及實例

巴扎黑
巴扎黑原創
2017-04-12 17:47:532364瀏覽

這堂課我們來談談關於final關鍵字的概念和用法。

什麼是final關鍵字?

final中文翻譯為“最終的”,“最後的”。在宣告一個類別之前用final關鍵字修飾,說明這個函數將不能在任何子類別中被重載,繼承,也就是說,被final修飾的類別將不能再有子類別。

之前的課程我們說了4種關鍵字,public、private、protected、static,分別是公用、私有、保護、靜態。用法及範例在前面的課程都有,想學習的同學可以參考前面的課程:

php物件導向之靜態方法使用

php面向物件之資料隱藏

下面我們用實例來比較下final和其他關鍵字有什麼不一樣,再來分析下final的用法:

final用法實例詳解:

<?php
header("content-type:text/html;charset=utf-8");
class A{                                               //声明类
public $num = "23";
final function operation(){                            //创建方法,用final关键字
echo &#39;上面变量$num数字是 &#39; . $this->num ;
}
}
class B extends A{                                    //创建子类B继承A类
public $num = "50";
function operation()
{
echo &#39;这个变量$num数字是 &#39; . $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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn