Re: [問題] 面試時被問到介面功能
※ 引述《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
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章