JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區 » Object/物件導向  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:[實力測試]什麼是多型? [Re:alien]
caterpillar

良葛格

版主

發文: 2613
積分: 70
於 2005-07-05 20:32 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
alien wrote:
Polymorphism 的原本的意思是, 能變成(~morph~) 不同 (poly~) 的形態.
它形容的東西, 和 ylam 說的比較像 (雖然不全正確)


我的理解是。。。

在Java中的多型操作時,物件本身並沒有什麼改變,型別被視為身份可以接受,但我的想法是型別在Java中只不過是一層「殼」,物件上有各種操作方法,使用適當的殼可以操作上面的某些方法,換個操作介面就像換個殼,就我的理解,物件唯一的型別就是定義它的class。。。

意謂, 比如一個人, 他除了 "本身" 這身份外, 也可以有學生等等的身份.
每種身份可以看成 interface (廣義的), Polymorphism 原意就是一個人 (obj instance) 能有 不同的身份 (interfaces). 作為一個個體, 對於其包含的身份所提供的 "功能", 它會有其正確的實現方法.


我覺得這邊與我們認知的其實是同一個東西,我的想法是,「人」這個實例本身沒有改變,改變的只是他的身份,「人」要說它的型別的話,「人」就是它的型別,身分是他的表面(介面)。。。換個身分,它就換個功能(例如展現出員工,老公,爸爸等功能。。。)

以一個介面去操作不同的 implementation 那雖然是 polymorphism 帶來的特性, 但並非 polymorphism 的本身

還有, Polymorphism 一詞,若不指明是 OO 的 polymorphism, 含義則更廣. Method Overloading, C++ 的 template 等皆可以歸為 polymorphsim.


這邊我其實不太將Overloading與template視為多型,Overload與template是在編譯時期可以決定的,多型則涉及執行時期的動態性、後期綁定,編譯時期無法知道您會操作哪一個實例。。。

有人認為, 實作介面是繼承的一種. 繼承涉及 interface (廣義的, 非單指 java 中的 interface) 的繼承和 implementation 的繼承. 這樣理解的話也無不可


如果是用C++的多重繼承,一個繼承實作體,一個繼承抽象類別(一個內部都是純虛擬函式的類別),將後者類比至Java的interface的話,我倒可以理解實作介面是繼承的一種,但純就Java的語義來說,似乎不適當。。。

我個人則偏好把 OO 中的 Inheritence 理解成上述的 "implementation 的繼承", 而 Polymorphism 則是上述的 "interface 的繼承" 的概念. 個人感覺把兩者分開比較能體現 OO 的精神.


同上,如果以類比C++中多重繼承的話,這邊我們認知的是相同的東西。。。

以上都是我的理解。。。


caterpillar edited on 2005-07-05 20:35
reply to postreply to post
良葛格學習筆記
話題樹型展開
人氣 標題 作者 字數 發文時間
64925 [精華] [實力測試]什麼是多型? BruceHsu 1745 2003-09-12 21:35
61594 Re:[實力測試]什麼是多型? swanky 20 2003-09-12 21:48
61371 Re:[實力測試]什麼是多型? BruceHsu 82 2003-09-12 21:57
61710 Re:[實力測試]什麼是多型? Duncan 2568 2003-09-12 22:56
57130 Re:[實力測試]什麼是多型? 183 2004-12-26 02:09
57033 Re:[實力測試]什麼是多型? leonz 13 2004-12-26 04:23
57524 Re:[實力測試]什麼是多型? caterpillar 325 2004-12-26 23:36
56488 Re:[實力測試]什麼是多型? roycliu 195 2005-01-08 15:38
51822 Re:[實力測試]什麼是多型? ylam 32 2005-07-04 22:21
51755 Re:[實力測試]什麼是多型? caterpillar 144 2005-07-05 18:43
51694 Re:[實力測試]什麼是多型? alien 784 2005-07-05 19:06
51667 Re:[實力測試]什麼是多型? caterpillar 1297 2005-07-05 20:32
51678 Re:[實力測試]什麼是多型? alien 1401 2005-07-06 01:23
10890 Re:[實力測試]什麼是多型? sample33 201 2015-09-22 07:31
51573 Re:[實力測試]什麼是多型? caterpillar 495 2005-07-05 20:42
51747 Re:[實力測試]什麼是多型? Duncan 258 2005-07-05 21:58
51405 Re:[實力測試]什麼是多型? ylam 218 2005-07-06 21:50
51409 Re:[實力測試]什麼是多型? Lan2 191 2005-07-06 21:57
51350 Re:[實力測試]什麼是多型? alien 286 2005-07-07 19:57
51742 Re:[實力測試]什麼是多型? ylam 9 2005-07-07 20:28
51334 Re:[實力測試]什麼是多型? alien 138 2005-07-08 00:05
51253 Re:[實力測試]什麼是多型? ylam 97 2005-07-08 17:20
51217 Re:[實力測試]什麼是多型? alien 269 2005-07-08 22:23
51247 Re:[實力測試]什麼是多型? Lan2 23 2005-07-08 19:31
61176 Re:[實力測試]什麼是多型? Duncan 481 2003-09-12 21:54
60945 Re:[實力測試]什麼是多型? BruceHsu 254 2003-09-12 21:55
60890 Re:[實力測試]什麼是多型? BruceHsu 239 2003-09-12 21:56
51168 Re:[實力測試]什麼是多型? ylam 20 2005-07-09 09:44
51099 Re:[實力測試]什麼是多型? alien 122 2005-07-10 00:05
51193 Re:[實力測試]什麼是多型? lkkll 175 2005-07-09 14:50
51096 Re:[實力測試]什麼是多型? alien 366 2005-07-10 00:46
51106 Re:[實力測試]什麼是多型? lkkll 52 2005-07-10 14:23
50972 Re:[實力測試]什麼是多型? lkkll 260 2005-07-10 14:39
50995 Re:[實力測試]什麼是多型? lkkll 220 2005-07-10 14:52
50658 Re:[實力測試]什麼是多型? caterpillar 464 2005-07-10 16:35
50956 Re:[實力測試]什麼是多型? lkkll 201 2005-07-10 15:35
50666 Re:[實力測試]什麼是多型? caterpillar 40 2005-07-10 16:21
50589 Re:[實力測試]什麼是多型? lkkll 54 2005-07-10 16:39
50419 Re:[實力測試]什麼是多型? caterpillar 127 2005-07-10 19:13
50371 Re:[實力測試]什麼是多型? lkkll 31 2005-07-10 21:23
60809 Re:[實力測試]什麼是多型? BruceHsu 43 2003-09-12 22:53
60983 Re:[實力測試]什麼是多型? Duncan 568 2003-09-12 23:06
60811 Re:[實力測試]什麼是多型? BruceHsu 567 2003-09-12 23:08
50423 Re:[實力測試]什麼是多型? caterpillar 74 2005-07-10 21:30
50372 Re:[實力測試]什麼是多型? lkkll 43 2005-07-10 22:45
50388 Re:[實力測試]什麼是多型? caterpillar 476 2005-07-10 22:57
50459 Re:[實力測試]什麼是多型? alien 668 2005-07-10 23:42
50390 Re:[實力測試]什麼是多型? caterpillar 165 2005-07-10 23:54
50366 Re:[實力測試]什麼是多型? alien 161 2005-07-11 00:02
50291 Re:[實力測試]什麼是多型? ylam 76 2005-07-12 20:07
50130 Re:[實力測試]什麼是多型? alien 117 2005-07-14 22:20
49461 Re:[實力測試]什麼是多型? fwen 72 2005-08-10 02:29
49980 Re:[實力測試]什麼是多型? alien 169 2005-08-10 09:59
62860 Re:[實力測試]什麼是多型? T55555 416 2003-09-13 00:30
60927 Re:[實力測試]什麼是多型? Yoshi 416 2003-09-13 00:41
60858 Re:[實力測試]什麼是多型? Duncan 789 2003-09-13 01:48
60718 Re:[實力測試]什麼是多型? caterpillar 0 2003-09-13 01:35
61625 Re:[實力測試]什麼是多型? Duncan 2583 2003-09-14 01:16
56180 Re:[實力測試]什麼是多型? 湯瑪士小火車 359 2005-01-07 15:37
61531 Re:[實力測試]什麼是多型? T55555 1346 2003-09-13 02:17
61016 Re:[實力測試]什麼是多型? Duncan 1680 2003-09-13 02:30
60854 Re:[實力測試]什麼是多型? Yoshi 1140 2003-09-13 02:47
60928 Re:[實力測試]什麼是多型? Duncan 1677 2003-09-13 02:59
60246 Re:[實力測試]什麼是多型? yysun 242 2004-02-06 08:08
60206 Re:[實力測試]什麼是多型? psmonkey 489 2004-02-06 19:15
60266 Re:[實力測試]什麼是多型? yysun 66 2004-02-06 19:42
57673 Re:[實力測試]什麼是多型? doris 333 2004-12-16 22:06
» JWorld@TW »  Java 新手區 » Object/物件導向

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8