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

看板java作者 (....)時間19年前 (2006/04/14 15:02), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串18/33 (看更多)
※ 引述《kazenol (隨便啦)》之銘言: : 我大致能了解作者的意思,也明白您的意思。如果不讓演算法只是針對這個物件而用 : ,讓別的物件也能使用,用繼承我能理解,可是介面裡只是一個演算法的名稱,而實際 : 的演算法還是要寫在實作的物件裡。那麼不管父母類別裡的演算法函式怎麼寫的,去繼承 : 介面的子物件應該是看不到父母類別裡的方法,充其量是兒子知道父母有錢,但是怎麼 : 賺來的不知道,自己得要去想賺錢的方法。就算父母類別想將賺錢的演算法傳給其他人, : 因為介面不准寫方法,也只能定義要賺錢()、會賺錢()這樣的口頭話。 : 所以我一直不懂的是,介面的多向繼承,到底是繼承了什麼?為何要去繼承? : 介面寫的都是一些空的名詞啊,既沒繼承到實質的方法與變數,同時子物件自己也必須 : 要寫自己的方法。 : 我唯一能想到的解釋是。一個人coding可以知道哪邊要做什麼事,跟一堆人coding可能 : 就有個主設計師把規則先寫出來,後面的人都得照這規則去繼續寫,就像是把大綱寫在 : 程式裡這樣吧。 我想大家回答的問題集中在多種繼承與介面的關係,我覺得原波其實 沒有要問到那層面的事,我看起來他的問題簡單來說是懷疑「既然兒子自己也會賺錢 ,為什麼一定要繼承父母會賺錢的介面」 我用另一個例子來說明 他的問題有點像「假設有個人對法律很了解,但為什麼一定要有律師執照 別人才能找他當律師」 對法律很懂是某個人的function。律師執照就像是一種interface, 這個interface定義擁有執照的人一定要很懂法律。因此雖然某個人很懂法律 (他有implement跟interface一樣的方法),但它沒有律師執照(沒有繼承介面), 但他就是沒有辦法當律師。也就是說律師執照是一種介面,我們要請某人當律 師時只要知道他有沒有律師執照(有沒有該interface),就知道我們可不可以 請他當律師。雖然律師執照只是一張紙(像原波說的「介面寫的都是一些空的名詞 啊,既沒繼承到實質的方法與變數,同時子物件自己也必須要寫自已的方法」), 但我們就是要繼承該介面。 這就是為什麼要繼承介面 這就是為什麼要有律師執照!? 我們不能在class中寫actionPerformed()就說他是actionListener 我們不能說自已很懂法律就說自己是律師 而以語言上來說,因為是靜態型別語言(前面某大大說過),所以一定 要繼承介面才能跟定義好的型別做某些互動。 說得很亂,不知道有沒有回答到問題= = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.136.147.164 ※ 編輯: Rokund 來自: 140.136.147.164 (04/14 15:58)
文章代碼(AID): #14FqaXue (java)
討論串 (同標題文章)
文章代碼(AID): #14FqaXue (java)