找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
尊貴會員無限觀看附件圖片伊莉需要你的贊助和支持儲值後自動升級用戶組
mega無碼人妻rion上原亞衣進擊的巨中文中字
シャドウssis 839妹!せい中字葛仲珊tiny(胎なつのさ

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]怪獸八號02-

[簡]單人房、日照一般

[繁]老夫老妻重返青春

[繁]從Lv2開始開外掛

[簡]狼與辛香料 Merch

[簡]終末的火車前往何
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 3398|回復: 6
打印上一主題下一主題

[問題]多型疑問[複製鏈接]

帖子
35
積分
17 點
潛水值
4980 米
跳轉到指定樓層
樓主
發表於 2016-6-25 11:12 AM|只看該作者|倒序瀏覽
小弟近來對於多型問題仍無法了解,上網爬過文仍不懂,煩請各位大大協助指導

class A{
  方法A{}
}

class B extends A{
  方法B{}
}

class C extends A{
  方法C{}
}

多型就是用父型別去參考子類別的物件

宣告父型別A參考子類別物件B
A a = new B();
如果要使用到子類別B的成員就必須轉型
...
瀏覽完整內容,請先 註冊登入會員
分享分享0收藏收藏0支持支持0
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

帖子
0
積分
1 點
潛水值
60 米
頭香
發表於 2016-6-26 02:50 AM|只看該作者
本帖最後由 sillygoose 於 2016-6-26 02:52 AM 編輯

如果有一個物件P有一個method能傳入A類別,並且呼叫A的某個method行為,但是B類別也有一樣的行為跟需要使用P的這個method處理,所以你不希望寫成P有兩個method動作一樣,卻分別傳入A跟B..就可以用多型B extends A然後P的method傳入A,這樣只要是A的子類P就能處理,這只是其中一種情境..

用物件之間合作跟不重複寫一樣的code去想比較能理解.
...
瀏覽完整內容,請先 註冊登入會員
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

Rank: 2Rank: 2

帖子
508
積分
593 點
潛水值
32035 米
3
發表於 2016-6-26 04:24 PM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
會用多行,大部分是這兩種狀況
(1)一般左邊的型態習慣是interface(介面),當我右邊new 出來的class 想要改變成,程式碼就不需要大幅更動內容,例如 List li = new ArrayList(); 改成 List li = new LinkedList();,你的後面程式碼完全不需修改就可運作,當然前提是你沒有在後現寫(ArrayList) li 這種寫法。
(2)另一種狀況是當宣告method為 method(A input),b,c要使用時就可以method(b),method(c),而不用寫成method(B input),method(C input),讓b,c來呼叫...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 2Rank: 2

帖子
241
積分
299 點
潛水值
22810 米
4
發表於 2016-6-27 10:13 PM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
因為你沒有需要用到多型, 所以不覺得他會很方便.

譬如一下, 假設要操作AM/FM收音機, 同樣有往上加, 往下減, 有往上找, 有往下找等動作
* 我可以定義動作(interface to function), 然後控制流程根據動作(function)來操作.
* AM/FM, 則是由另外一個控制項來決定(全域變量), 只要指定AM, 其他的控制流程, 就執行AM的動作, 如果指定FM, 其他控制流程, 就執行FM的動作.
* 對於控制流程來說, 執行的都是一樣的動作函式(interface to function), 流程不需要因為AM/FM而去寫出不同的版本, 可以使用一個同樣的流程, 卻是對應到不同的實體功能.
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 1

帖子
736
積分
48 點
潛水值
13932 米
5
發表於 2016-7-1 07:21 AM|只看該作者
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
實際上來講,這是一種預先處理面對不確定性的方法之一。
如果參考的型態是父類別,後面接什麼樣的子類別都是可以的,
因為你無法確保某個實作A,它不會有一天過時了,或是因為需求變動而無法應付。

比方說你請了隻「動物」來看門,但這個動物可能千百種你不確定會是哪種,總之你就是要他看門。
那麼實作的方式就會如下:
public abstract class Animal{
...
瀏覽完整內容,請先 註冊登入會員





成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

Rank: 2Rank: 2

帖子
37
積分
249 點
潛水值
6131 米
6
發表於 2016-8-24 04:43 AM|只看該作者
本帖最後由 thebestjavauser 於 2016-8-24 04:59 AM 編輯

這個問題可以從 Functor (和 OO 裡的那個 Functor 不同) 開始談

從這裡我們可以很清楚的了解何時該用 Base type 宣告,何時該用 Derived Type 宣告比較好 (當然不是永遠用 Base type 最棒囉)

Functor 分成兩種:
  1. Convariant Functor
  2. Contravariant Functor

Convariant Functor 是一個函數,不論你傳什麼型別的參數給它,它就只回傳固定型別...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
7565
積分
4321 點
潛水值
34960 米
7
發表於 2016-8-24 07:14 AM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
本帖最後由 chevylin0802 於 2016-8-24 07:25 AM 編輯

簡單的舉例

Shape物件是一個最基礎的圖形物件
不管是線條Line, 矩形Rectangle, 橢園Oval, 園形Circle
都是基於Shape底下的各個不同的類別
假設在一個畫版上要容納這些實際線條所構築出來的圖畫時(比如類似於CAD的軟體)
那麼
畫版物件裏就需要宣告一個List<Shape>的參數
...
瀏覽完整內容,請先 註冊登入會員
系統已重置禁訪用戶到普通用戶和密碼一次
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部