亚洲av无码乱码国产一区二区,午夜理论片yy44880影院,午夜久久久久久禁播电影,熟睡人妻被讨厌的公侵犯

21
2025/06

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

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

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

繼承(Inheritance)是面向?qū)ο缶幊蹋∣OP)的三大基本特性之一(封裝、繼承、多態(tài))。在PHP中,繼承允許一個類(子類/派生類)基于另一個類(父類/基類)來構(gòu)建,自動獲得父類的屬性和方法,同時可以添加新的特性或修改繼承來的行為。

繼承的核心特性

代碼復(fù)用性(Code Reusability)

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

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

層次化分類(Hierarchical Classification)

    通過繼承關(guān)系可以建立清晰的類層次結(jié)構(gòu)

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

方法重寫(Method Overriding)

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

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

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

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

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

所以結(jié)果就是a類中的方法

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

因為當(dāng)前對象是類 A 的實例,所以調(diào)用的是類 A 的 create 方法

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

關(guān)鍵詞:
返回列表