Re: [問題] 面試時被問到介面功能

看板java作者 (swpoker)時間11年前 (2013/10/17 09:40), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串3/14 (看更多)
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : ※ 引述《aoksc (重出江湖)》之銘言: : : 今天面試時被面試官問Java為什麼要有介面 : : 有繼承的機制不就夠了嗎? : : 我的回答是因為為了要解決Java不能多重繼承的問題 : : 避免為了繼承而繼承破壞繼承的結構 : : 也讓不同的類別可以分離出共同的介面 : : 面試官接著問:還有呢? : : 這…我的功力不夠就答不出來了 : : 所以想請教一下各位 : : 除了上面的答案之外還有什麼更完善的答案呢? : : 謝謝 介面存在的目的就是跟推文大大說的一樣 因為C的多重繼承直接導致不可思議的問題 也因為本身語言的機制導致無法從語言本身解決 例如 A{methodA,methodC} B{methodB,methodC} XXX 繼承A,B 那麼methodC是??? 所以java解決這個問題,就是限制繼承的範圍 這也讓我想到在tiles有說明到其解決的方式不採用繼承,而是用組合說明了繼承的問題 不過我還是比較傾向介面是類似contract的概念 要來辦個投票嗎? 採用介面的理由是.. 1.避免多重繼承 2.嚴格的規範(contract) 3.多隻.java就可以多報點價 : 《壽司料理王》第 165 話〈壽司問答〉中有這麼一個故事: : 德田把所有已知的禪門公案都背下來 : 所以師父給的「問答」都能回答的游刃有餘 : 於是這個師父就去找他師父:笑點和尚(謎之聲:what the f__k name) : 笑點和尚:哈哈哈哈哈... : 那個小和尚或許是把據說一千七百則之多的公案給背起來了也說不定。 : 師父:這可不好笑阿,笑點和尚。 : 真是的!說道最近的修行僧阿... : 光是把知識和答案塞到腦袋裡頭去。 : 這麼一來... 拼命設計難題, : 應該是以消除雜念達到領悟目的公案就沒用了。 : 笑點和尚:我們當小和尚的時代就連電腦都沒有呢。 : 現在只要一個按鈕就可以得到更種情報。 : 於是笑點師父就出了一個公案給德田: : 越是卓越的壽司師父,越容易在工作上犯的錯誤是什麼? : 德田在音壽司那裡頓悟之後,回去這樣回答笑點師父 : 卓越的壽司師父犯的錯雖然是錯, : 不過是出自無心的真理! : 我的禪問答不存在於體內, : 是知識!不是真理! : 禪要成為體驗! : ======== 你真的沒有走錯版之分隔線 ======== : 這本來可以是個好問題的 : 或著說,版面上大多數的文章(問題),都可以是個好問題的 : 但是問的動機很詭異,結果問的方式也就跟著詭異了起來 : 於是造就了令人悲傷的局面 : 為什麼要有/用 interface? : 為什麼要有/用 abstract class? : 還有一卡車的「為什麼」問題 : 應該充斥在你寫的每一行 code : 應該充斥在閱讀別人寫的每一個 class 當中 : 讓你提心吊膽、讓你躊躇無法決定 : 也許不怕別人笑,但是總會怕哪一天這些沒想清楚的「為什麼」爆發 : 把你被生吞活剝,連個骨頭都不剩 : (我人品不好,通常都是現世報) : 講的自大一點 : 我始終不想搞懂 Design Pattern 的藉口 : 就是我知道了這些 pattern,當然,要唬爛人的時候很好用 : 但是實做上我還是不知道該怎麼作,反而憑空產生許多「雜訊」 : 還不如想辦法擺平程式 : 然後別人回頭跟我說「你寫的這個就是 xx pattern」 : 來的實在且踏實 : 你這樣子的問法,有什麼意義嗎? : (讓版主審視版規 4 夠不夠好...的意義) : 你因此得到了答案,有什麼意義嗎? : Java 語言也許不是真理 : 但是寫 Java、瞭解 Java 要成為體驗 : 阿們 這就是理論跟實務的論點 我也曾經推薦Design pattern給我同事看 我同事就說他以前就看過~可是看完後~還是不知道要怎麼實作 其實原因無他 因為design pattern不是用來實作的 因為這些都是是經驗之談 ->沒有一個或是絕對標準的答案 就好像我女友看港劇的時候,都會問一句話:這個是好人還是壞人? 也就是在解決問題的時候,請問會有標準的答案嗎? 其實是沒有的~我會根據人事時地物決定不同的方式 所以這就造成困惑了 如果看重構這本書就更糟糕了(會有正反說的論點) 此外我比較推薦敏捷開發這本書 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.29.28.131 ※ 編輯: swpoker 來自: 163.29.28.131 (10/17 09:42)

10/17 14:12, , 1F
開頭提到的問題在多介面也會碰到
10/17 14:12, 1F

10/17 14:28, , 2F
但介面沒有實作~所以沒差~但類別繼承會有實作的問題
10/17 14:28, 2F
文章代碼(AID): #1INq04E0 (java)
討論串 (同標題文章)
文章代碼(AID): #1INq04E0 (java)