Re: [問題] 請問interface到底是做什麼用的?

看板java作者 (夜夢紛)時間19年前 (2006/04/14 01:49), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/33 (看更多)
別想太多....介面就是 做某個function 所開放出來的窗口.... 所以才叫介面呀....若想要具有這個介面的功能...那就去 implements這個介面. 舉各例子: * USB...is just a " Interface"................ * 所有想要support這種傳輸方式(maybe some methods)的devices皆要實作這一個 Interface...(數位相機, MP3, protable disks....) * 所以這些devices 就必須實作USB 所定的傳輸方式(implements methods) 才能宣稱說: "我支援USB介面傳輸喔".....但是不是繼承的 " is-a " 關係 ....說我的相機是一種USB有點怪怪的吧.... .應該是說:我的相機有(具備)USB介面的傳輸功能喔....... * 所以當一隻智慧型手機(繼承" 手機") ..且具備照相功能(實作"拍照"介面)時.. ..就達到多重繼承的效果, 但是還是解讀成..智慧型手機 is-a 手機(繼承).. ..但具備拍照功能(實作介面)....而不是智慧型手機是一種相機(not is-a). ......而是本質功能為手機才恰當.... * 愚見請各位高手不吝指正.... ※ 引述《kazenol (隨便啦)》之銘言: : 我找了很多資料,大致上了解的是,介面是為了解決單一繼承的問題、或是規範 : 出繼承者必須做出介面預定的規則。 : 繼承我大概了解,子類別繼承之後可以使用父類別的函式與變數。可是繼承介面 : 有什麼好處?如果這個介面規定要做一個jump,但是繼承後jump也不能用,要去 : 寫一個實際jump的方法。那我直接繼承其他類別,也是可以定義jump func,為什 : 麼要繞一圈去繼承一個沒有內容、只寫個名字的類別呢? : 我看過一個例子,有個父class很會運動,母class很會唱歌。但是小孩子只能繼承 : 父或母而變得不完美。所以定義一個介面包含會唱歌和會運動的抽象函式,然後由 : 小孩去實作,這樣就算多重繼承。可是第一,父類別的會運動是會講明怎麼個運動 : 法,但是介面的“會運動“,就這三個字而已,沒有說明也沒有方式。第二,這個 : 介面的會運動和會唱歌除了名稱以外,跟這對父母類別有關連嗎?? 而且其他實作 : 這個介面的其他小孩,他們的會唱歌和會運動函式會寫的一樣嗎? : 不好意思扯了一堆,因為我一直看不懂介面所以放棄java,沒想到又在php遇上 : ,只好求各位幫我解惑。謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.52.201
文章代碼(AID): #14FeyRsM (java)
討論串 (同標題文章)
文章代碼(AID): #14FeyRsM (java)