Re: [問題] 程式設計觀念

看板C_Sharp作者 (還在想)時間9年前 (2015/07/17 09:18), 9年前編輯推噓3(303)
留言6則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《firebow (台中蘇志燮)》之銘言: : 小弟程式新手 : 今天在youtube看到c#英文教學 : 看到他寫了一個介面A : 裡面有宣告屬性 : 然後類別B繼承(? 介面A : 裡面有私有欄位 : 透過繼承介面A的屬性來訪問私有欄位 : 請問這樣跟類別B不繼承介面A : 自己宣告兩個屬性訪問私有欄位 : 兩個差別在哪? : 謝謝! 印象中 介面的用處是讓繼承他的人外表看起來都會差不多 這樣之後只要使用介面來宣告變數,就可以動態決定要使用哪一個實作的內容 如果你類別B之後都只會直接使用類別B來宣告他 那介面的作用就只是限制他的外型而已,就像你說得沒有作用 但如果還有另外一個實作介面A的類別C存在 之後如果宣告介面A的變數甲 甲就可以接受類別C或類別B的宣告,並且使用其共用方法 假設我設定一個介面叫做 飛行物 飛行物有三個行為,起飛、飛行、降落 有兩個屬性,飛行速度與燃料 類別B是飛機,繼承飛行物介面 他得要實作飛行物的三個行為,使用飛機的方式來達成起飛、飛行與降落 起飛是開啟引擎並滑行升空,飛行是持續燃燒燃料並控制方向舵 降落是瞄準跑道降低高度伸出機輪並使用逆向噴射 飛行速度達到0.84馬赫,飛行燃料是汽油 類別C是老鷹,繼承飛行物介面 使用老鷹的方式實作三個飛行物行為 起飛是用力拍動翅膀,可能配合踢樹枝起飛 飛行是配合氣流擺動翅膀飛行,大多時候是在滑翔 降落是瞄準樹枝,伸出腳爪抓住樹枝並收起翅膀 飛行速度達150公里,飛行燃料是兔子,老鼠或小型鳥類 只要宣告飛行物介面,就可以之後再動態決定要飛的是飛機還是老鷹 反正都一樣給燃料後叫他們起飛,飛行一段時間後降落,只是速度有差 如果你從頭到尾只有要作飛機一種類別 那你不使用介面的確是沒差,反正你自己決定好起飛飛行降落方式之類的就好 這是我的理解啦,不知道有沒有錯 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.18.8 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1437095920.A.9DB.html ※ 編輯: Peruheru (220.134.18.8), 07/17/2015 09:23:55

07/18 00:07, , 1F
原來如此~~謝謝你!!
07/18 00:07, 1F

07/18 08:17, , 2F
介面→共同的行為
07/18 08:17, 2F

07/18 17:27, , 3F
最近深深體會到,要寫大型程式,介面一定要切夠細,
07/18 17:27, 3F

07/18 17:27, , 4F
越細越好
07/18 17:27, 4F

07/18 17:29, , 5F
就本文來說,除了飛行物介面以外,甚至可以切出 1.
07/18 17:29, 5F

07/18 17:29, , 6F
可起飛的 2. 可飛行的 3. 可降落的
07/18 17:29, 6F
文章代碼(AID): #1Lg5VmdR (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1Lg5VmdR (C_Sharp)