PCDVD數位科技討論區

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)

質量變數 2015-03-05 11:44 PM

關於多型(polymorphism)、overloading
 
我想請教一下大家,overloading算多型嗎?

我查了很多資料,有的說overloading屬於多型,又有的說不是....

有的網站寫說大部分的人會把overloading也當成多型的一種,但這觀念是錯誤的

不過學校老師教說overloading、override(沒爭議)都是屬於多型的一種。

想請教一下各位的看法,實際又是如何呢?

FatJohn 2015-03-06 01:32 AM

我覺得有時候這種大家吵半天沒個準的東西自己也不用煩惱,有自己的看法就好,但要記得這是情也不自己說的就是"對"的
而且在這個地方爭對錯似乎沒什麼意義耗費心神...
知道怎麼去利用這個機制比較重要

個人淺見

zing115 2015-03-06 09:31 AM

我覺得 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。所以說,一個訊息的解釋是由接收者來決定的,而不是送出者。如果一個系統具有這樣的特性,那麼我們就說這個系統具備多型的行為。

f3346 2015-03-06 09:34 AM

Overloading、Overriding

參考看看 :)

T磨人v2 2015-03-06 09:41 AM

其實 interface 我個人覺得也是可以實作成多型 , Ex 如下 (個人淺見 高手們 笑笑就好)
interface IWoman{
public bool isBeauty();
{

class 林志玲 implements IWoman {
public bool isbeauty() { return true; }
}

class 如花 implements IWoman {
public bool isbeauty() { return false; }
}

kenchen_1226 2015-03-06 09:58 AM

管他是不是多型
知道怎麼用, compiler 過,執行沒問題
又有效率
管他叫什麼

elase2000 2015-03-06 10:38 AM

多型是概念,overloading是一種實作的方式。

dino750 2015-03-06 11:04 AM

引用:
作者FatJohn
我覺得有時候這種大家吵半天沒個準的東西自己也不用煩惱,有自己的看法就好,但要記得這是情也不自己說的就是"對"的
而且在這個地方爭對錯似乎沒什麼意義耗費心神...
知道怎麼去利用這個機制比較重要

個人淺見


同意+1

有支援overloading, override的語言,通常也會有支援Polymorphism,知道什麼時候用,用的有效率就好.


所有的時間均為GMT +8。 現在的時間是11:37 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。