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