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

看板java作者 (十年一夢)時間10年前 (2013/10/17 15:35), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串5/14 (看更多)
※ 引述《swpoker (swpoker)》之銘言: : 標題: Re: [問題] 面試時被問到介面功能 : 時間: Thu Oct 17 09:40:16 2013 : : 介面存在的目的就是跟推文大大說的一樣 : 因為C的多重繼承直接導致不可思議的問題 : 也因為本身語言的機制導致無法從語言本身解決 : 例如 : A{methodA,methodC} : B{methodB,methodC} : XXX 繼承A,B : 那麼methodC是??? : 所以java解決這個問題,就是限制繼承的範圍 : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 163.29.28.131 : ※ 編輯: swpoker 來自: 163.29.28.131 (10/17 09:42) : → sbrhsieh:開頭提到的問題在多介面也會碰到 10/17 14:12 : → swpoker:但介面沒有實作~所以沒差~但類別繼承會有實作的問題 10/17 14:28 這種說法已看過多次,但老實說我覺得蠻沒有說服力的。 採用 interface 來實作多重型別時,就可以省去 ambiguity 的麻煩,是 一廂情願的想法。 當一個 class implements 了兩個擁有相同 name/signature method 的 interface 時,只能提供一個 implementation,但是兩個 interface 內的同 name/signature method 的意義不一定相同,所以你不總是能夠提供適當的 method implementation。 若"所以java解決這個問題"中的問題是指編譯時會產生有時讓人摸不著頭緒的 ambiguity 訊息,那我覺得 Java 的作法真的不算是一種進步。 多重實作繼承確實是麻煩的一件事,但是用同 name/signature 的 method 為例子 是不足以證明 interface 繼承是更好的作法。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.110.51

10/17 15:38, , 1F
沒錯!所以我不會只採用繼承作為解決的方案之一!!!
10/17 15:38, 1F

10/17 15:39, , 2F
反而我會認為使用"繼承"是必須要很小心的~不能依賴語言
10/17 15:39, 2F

10/17 16:03, , 3F
我曾經反對"獲得某個元件的功能就是用繼承"的作法
10/17 16:03, 3F

10/17 19:10, , 4F
贊成。如果真的搞到需要多蟲劑成,我會請設計者改包含
10/17 19:10, 4F
文章代碼(AID): #1INvDPok (java)
討論串 (同標題文章)
文章代碼(AID): #1INvDPok (java)