java 板


LINE

恕刪 小弟也是初學 提供一些淺見,要是有誤還煩請板友指正 : 1.多型就是有很一種類別有很多的類別型態,因為classA的function裡的參數 : ,不知道會傳什麼型態進來,所以就用多型,我這樣子講對嗎?這就是多型的 : 好處嗎? 對,以您的例子 假設有二個類別 Triangle 和 Rectangle 都是繼承他們的超類別 Shape Triangle 和 Rectangle 都可以視為是Shape 好處就在於 在撰碼的時侯可以針對上層的類別或介面寫程式(Shape),而不是 針對實作類別(Triangle, Rectangle)去寫程式 舉個例子 若今日Shape假設長這樣 abstract class Shape{ abstract public void paint(); public void rotate(){ .........; } } 要繼承Shape的類別就一定會有Shape的特性 class Triangle extends Shape{ public void paint(){ ....; } } 今日假設有個method要傳入參數並畫出來時只要就好了 無須去知道傳入的究竟是Triangle還是Rectangle class Test{ public void testPaintMethod(Shape s){ s.paint(); } } 這樣Test這個類別只與Shape去互動而非與下層的Triangle或Rectangle互動 : 2.我看書上說就是因為第一個問題:我們不知會有什麼類別傳入,所以我們用 : 多型,可是程式是自己打的,為什麼自己會不知道會有什麼類別傳入參數? : 因為我覺得自己會知道是什麼類別會傳入,所以主方法裡可能就改成 類別 : 三角型 形狀=new 類別三角型();或是類別正方型 形狀=new 類別正方型() : ;而不是用多型的方法去寫它。 雖然程式是自己打的,有的時侯我們使用多型的方法是為了增加程式的彈性與再利用率 以上述類別Test的例子來說,是用到多型的寫法 沒用到多型的寫法是 class Test{ public void testPaintTriangleMethod(Triangle t) { t.paint(); } public void testPaintRectangleMethod(Rectangle r) { r.paint(); } } 變得只要是多一個形狀,就必須新增一個方法 : 3.多型可以應用在那裡呢?什麼情況最適合用甚至是必定要用的呢? : 書上還寫說"多型是建立在繼承的基礎之上的,沒有繼承,就不會有多型",可 : 是我上面寫的例子,classB沒有extends classA,它們之間沒有繼承關係,但 : 是有多型的關係,我覺得書是不會寫錯,那我的觀念那裡錯了? : 問題有點多,麻煩高手指導一下我的觀念,非常謝謝了! 多型算是OO的基本觀念,應用還挺多的 只要類別有繼承或實作介面,而另一個方法是與超類別或介面互動 就算是多型的應用 如果有興趣可以看看Design Pattern,有不少多型的應用 class B extends A 意思是說 這個類別可以看成B也能看成A,有多種型態 所以叫多型 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.56.13.124
1F:推 s66449:我是原PO~非常謝謝你的講解 10/29 09:31







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS 或 站內搜尋

TOP