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

作者: Peruheru (還在想)   2015-07-17 09:18:38
※ 引述《firebow (台中蘇志燮)》之銘言:
: 小弟程式新手
: 今天在youtube看到c#英文教學
: 看到他寫了一個介面A
: 裡面有宣告屬性
: 然後類別B繼承(? 介面A
: 裡面有私有欄位
: 透過繼承介面A的屬性來訪問私有欄位
: 請問這樣跟類別B不繼承介面A
: 自己宣告兩個屬性訪問私有欄位
: 兩個差別在哪?
: 謝謝!
印象中
介面的用處是讓繼承他的人外表看起來都會差不多
這樣之後只要使用介面來宣告變數,就可以動態決定要使用哪一個實作的內容
如果你類別B之後都只會直接使用類別B來宣告他
那介面的作用就只是限制他的外型而已,就像你說得沒有作用
但如果還有另外一個實作介面A的類別C存在
之後如果宣告介面A的變數甲
甲就可以接受類別C或類別B的宣告,並且使用其共用方法
假設我設定一個介面叫做 飛行物
飛行物有三個行為,起飛、飛行、降落
有兩個屬性,飛行速度與燃料
類別B是飛機,繼承飛行物介面
他得要實作飛行物的三個行為,使用飛機的方式來達成起飛、飛行與降落
起飛是開啟引擎並滑行升空,飛行是持續燃燒燃料並控制方向舵
降落是瞄準跑道降低高度伸出機輪並使用逆向噴射
飛行速度達到0.84馬赫,飛行燃料是汽油
類別C是老鷹,繼承飛行物介面
使用老鷹的方式實作三個飛行物行為
起飛是用力拍動翅膀,可能配合踢樹枝起飛
飛行是配合氣流擺動翅膀飛行,大多時候是在滑翔
降落是瞄準樹枝,伸出腳爪抓住樹枝並收起翅膀
飛行速度達150公里,飛行燃料是兔子,老鼠或小型鳥類
只要宣告飛行物介面,就可以之後再動態決定要飛的是飛機還是老鷹
反正都一樣給燃料後叫他們起飛,飛行一段時間後降落,只是速度有差
如果你從頭到尾只有要作飛機一種類別
那你不使用介面的確是沒差,反正你自己決定好起飛飛行降落方式之類的就好
這是我的理解啦,不知道有沒有錯
作者: firebow (台中蘇志燮)   2015-07-18 00:07:00
原來如此~~謝謝你!!
作者: kevintsengtw (mrkt)   2015-07-18 08:17:00
介面→共同的行為
作者: YahooTaiwan (超可愛南西我老婆)   2015-07-18 17:27:00
最近深深體會到,要寫大型程式,介面一定要切夠細,越細越好就本文來說,除了飛行物介面以外,甚至可以切出 1.可起飛的 2. 可飛行的 3. 可降落的

Links booklink

Contact Us: admin [ a t ] ucptt.com