[請益] PHP 有多型嗎?

作者: sunlights (sunlights)   2016-06-21 20:04:53
想問一下
學過JAVA
多型老師是這樣說的
母類別 Animal
子類別 Dog
如果寫 Animal aa = new Dog ();
這樣叫多型
可是PHP在new 時並沒有宣告 是子類別還母類別
如 $aa = new Dog();
只有在function 裡傳遞參數時會寫出

public function putout(Animal $obj) {
....
}
所以所以我覺得多型並不是大量使用..
但在網路上查到很多PHP的多型都是指實作..
除了
http://0rz.tw/WNuo7
敍述PHP沒有多型
到底上面的文章寫的對嗎?
作者: storyn26383 (販賣機)   2016-06-22 00:45:00
中文翻譯容易誤會,PHP 沒有 overloading,但是有 polymorphism
作者: sunlights (sunlights)   2016-06-22 13:26:00
但是文章上他們是寫PHP的多型真的是多型嗎?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-06-22 16:30:00
阿就一個user在google上找到一段 誰講的也不知道這樣你就把他奉為聖經了?還有你知道stackoverflow的格式嗎?你看到那一塊是他的「提問」 別人的「回答」在下面底下人家給了一大堆答案 有code有實做 有聲有色然後你都不看 只看到說「他這樣問 所以應該是這樣」那根本不需要問嘛 你自己都想好了不是嗎weak typing有他自己的規則 不要用java那套亂想
作者: gname ((′口‵)↗︴<><...<><)   2016-06-23 15:33:00
推樓上.. .不要把 JAVA 套進來...
作者: kyleJ (資工人)   2016-06-24 12:13:00
OOP的術語翻成中文總是很令人混淆 但你說的那個不是Override也不是Overload 是宣告父類別的變數可以參考到子類別 是強型別下才會出現的情況 PHP哪管你誰繼承了誰 用$開頭的變數你愛裝什麼值或參考去哪個物件都可以
作者: dlikeayu (太陽拳vs野球拳)   2016-06-28 22:10:00
樓上最後一段說的不太正確,PHP開發者和framework開發者現在都是為了效能瓶頸在往型別方面做強化優化當然你可以按PHP7之前的作法,把這些型別判斷丟給phpserve 去處理,但是在意機器成本的公司可能就不是這麼一回事了 https://wiki.php.net/rfc/return_types
作者: ej04cj86 (Swaglicious)   2016-07-17 21:14:00
interface & abstract class. 能用interface就別用abs因為比較貴, 除非你的abstract class有init function

Links booklink

Contact Us: admin [ a t ] ucptt.com