欧美成人片一区二区三区,久久碰人妻一区二区三区,久久婷婷激情综合色综合俺也去,狂野欧美性猛交免费视频,久久夜色精品国产亚洲

21
2025/06

PHP多態(tài)調用子類方法

發(fā)布時間:2025-06-21 09:45:23
發(fā)布者:已經(jīng)寫了
瀏覽量:
0

在開發(fā)項目的時候,很多時候為了可以更簡潔更高效的實現(xiàn)效果,會將一些通用的方法寫到一個類中,在用到的時候直接繼承就可以了,這里就用到的是php特效之一的繼承特性

繼承(Inheritance)是面向對象編程(OOP)的三大基本特性之一(封裝、繼承、多態(tài))。在PHP中,繼承允許一個類(子類/派生類)基于另一個類(父類/基類)來構建,自動獲得父類的屬性和方法,同時可以添加新的特性或修改繼承來的行為。

繼承的核心特性

代碼復用性(Code Reusability)

    子類自動繼承父類的所有public和protected屬性和方法

    避免了代碼重復,符合DRY(Don't Repeat Yourself)原則

層次化分類(Hierarchical Classification)

    通過繼承關系可以建立清晰的類層次結構

    表現(xiàn)"一般與特殊"的關系(父類代表一般性,子類代表特殊性)

方法重寫(Method Overriding)

    子類可以重新定義父類的方法(覆蓋)

    運行時根據(jù)對象類型決定調用哪個版本的方法(多態(tài)性)

這里就有一個有趣的問題,當前類a繼承了類b,在a類中重新定義了方法create,這時候a 調用父類b里的方法的c方法,c方法中調用了create方法這個時候執(zhí)行的是a中的create方法還是b里面的create方法

看起來很繞,其實直接從代碼走一遍就可以知道結果了

PHP多態(tài)調用子類方法

所以結果就是a類中的方法

即使 c 方法是在父類 B 中定義的,但其中的 $this->create() 調用的是當前對象實例的方法

因為當前對象是類 A 的實例,所以調用的是類 A 的 create 方法

這種行為就是多態(tài)(Polymorphism)的體現(xiàn),子類可以改變父類方法的行為

關鍵詞:
返回列表