![]() |
||
Amateur Member
![]() 加入日期: Feb 2015
文章: 40
|
關於多型(polymorphism)、overloading
我想請教一下大家,overloading算多型嗎?
我查了很多資料,有的說overloading屬於多型,又有的說不是.... 有的網站寫說大部分的人會把overloading也當成多型的一種,但這觀念是錯誤的 不過學校老師教說overloading、override(沒爭議)都是屬於多型的一種。 想請教一下各位的看法,實際又是如何呢? |
|||||||
![]() |
![]() |
Major Member
![]() 加入日期: Feb 2003 您的住址: 新北市
文章: 222
|
我覺得有時候這種大家吵半天沒個準的東西自己也不用煩惱,有自己的看法就好,但要記得這是情也不自己說的就是"對"的
而且在這個地方爭對錯似乎沒什麼意義耗費心神... 知道怎麼去利用這個機制比較重要 個人淺見
__________________
就算整個世界被大雨顛倒,我會給妳懷抱,受不了,看見妳背影來到,寫下我度秒如年難挨的離騷∼ 我的Blog:http://fatjohn0927.wordpress.com/ |
||
![]() |
![]() |
Regular Member
![]() ![]() 加入日期: Jan 2013
文章: 88
|
我覺得 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。所以說,一個訊息的解釋是由接收者來決定的,而不是送出者。如果一個系統具有這樣的特性,那麼我們就說這個系統具備多型的行為。 |
![]() |
![]() |
Master Member
![]() ![]() ![]() ![]() 加入日期: Mar 2012
文章: 2,346
|
|
![]() |
![]() |
*停權中*
加入日期: Mar 2014
文章: 49
|
其實 interface 我個人覺得也是可以實作成多型 , Ex 如下 (個人淺見 高手們 笑笑就好)
interface IWoman{ public bool isBeauty(); { class 林志玲 implements IWoman { public bool isbeauty() { return true; } } class 如花 implements IWoman { public bool isbeauty() { return false; } } 此文章於 2015-03-06 09:43 AM 被 T磨人v2 編輯. |
![]() |
![]() |
Advance Member
![]() ![]() 加入日期: Jun 2010
文章: 333
|
管他是不是多型
知道怎麼用, compiler 過,執行沒問題 又有效率 管他叫什麼 |
![]() |
![]() |
Amateur Member
![]() 加入日期: Mar 2010
文章: 42
|
多型是概念,overloading是一種實作的方式。
|
![]() |
![]() |
Major Member
![]() 加入日期: Jan 2002
文章: 187
|
引用:
同意+1 有支援overloading, override的語言,通常也會有支援Polymorphism,知道什麼時候用,用的有效率就好. |
|
![]() |
![]() |