多態性:對指標/引用的需求
多態性是物件導向程式設計中的一個基本概念,它允許不同類別的物件就好像它們屬於一個共同的超類別一樣。雖然在堆上分配記憶體足以實現動態綁定似乎很直觀,但缺乏指標或引用從根本上阻礙了多態性。
要理解原因,請考慮以下範例:
Derived d; Base* b = &d;
在這種情況下,d 駐留在堆疊上,但多態性對 b 仍然有效。這是因為 b 保留了定位衍生類別實例所需的資訊。
另一方面,如果沒有基類指標或引用,多態性就無法運作。考慮:
Base c = Derived();
由於切片,c 物件被辨識為 Base 而不是 Derived 物件。雖然多態性在技術上有效,但派生類別物件本質上丟失了。
最後,在下面的程式碼中:
Base* c = new Derived();
c 只是指向一個記憶體位置,可能包含 Base 或 Derived 物件。動態綁定對於虛擬方法呼叫仍然是可能的,因為呼叫者不知道特定的類別。
因此,指標或引用的使用對於多態性是必不可少的,因為它們:
以上是為什麼指標/引用對於多態性至關重要?的詳細內容。更多資訊請關注PHP中文網其他相關文章!