![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 關於多型(polymorphism)、overloading
(https://www.pcdvd.com.tw/showthread.php?t=1072360)
|
---|
關於多型(polymorphism)、overloading
我想請教一下大家,overloading算多型嗎?
我查了很多資料,有的說overloading屬於多型,又有的說不是.... 有的網站寫說大部分的人會把overloading也當成多型的一種,但這觀念是錯誤的 不過學校老師教說overloading、override(沒爭議)都是屬於多型的一種。 想請教一下各位的看法,實際又是如何呢? |
我覺得有時候這種大家吵半天沒個準的東西自己也不用煩惱,有自己的看法就好,但要記得這是情也不自己說的就是"對"的
而且在這個地方爭對錯似乎沒什麼意義耗費心神... 知道怎麼去利用這個機制比較重要 個人淺見 |
我覺得 function overloading
就只是方便你用同樣的名稱來寫出多個不同參數的 function polymorphism 的話 可以參考這一篇 搞笑談軟工: 什麼是物件導向(3):Polymorphism http://teddy-chen-tw.blogspot.tw/20...lymorphism.html 一個訊息(message or event or stimulus)的意義是由接收者(接收到這個訊息的物件)來解釋,而不是由訊息發出者(sender)來解釋。所以,在runtime時只要接受者換成不同的物件或是instance,系統的行為就會改變。具有這樣的特性就稱之為polymorphism。還是不懂,對,很正常。不過在看一個活生生的例子鄉民們就應該懂了。 *** Teddy(sender,等一下準備送出信息的物件)走在路上看到前方有兩位名人,分別是「林志玲」與「阿美姐」(等一下準備接收訊息的兩個物件),於是大喊一聲「美女請留步(訊息)」。理論上Teddy期待只有「林志玲」會「回頭」(訊息接收者的行為),沒想到「阿美姐」也回頭了...XD。所以說,一個訊息的解釋是由接收者來決定的,而不是送出者。如果一個系統具有這樣的特性,那麼我們就說這個系統具備多型的行為。 |
|
其實 interface 我個人覺得也是可以實作成多型 , Ex 如下 (個人淺見 高手們 笑笑就好)
interface IWoman{ public bool isBeauty(); { class 林志玲 implements IWoman { public bool isbeauty() { return true; } } class 如花 implements IWoman { public bool isbeauty() { return false; } } |
管他是不是多型
知道怎麼用, compiler 過,執行沒問題 又有效率 管他叫什麼 |
多型是概念,overloading是一種實作的方式。
|
引用:
同意+1 有支援overloading, override的語言,通常也會有支援Polymorphism,知道什麼時候用,用的有效率就好. |
所有的時間均為GMT +8。 現在的時間是11:37 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。