→ ssc24:開 規格書... 10/15 14:49
→ ssc24:EX:JDBC,Serverlet 10/15 15:20
→ ssc24:目的在制定規格書後,實作必須強迫依照相同的規格去各自實作 10/15 15:25
→ sbrhsieh:以上所述是不是套在 abstract class 也通? 10/15 15:56
→ ssc24:抽象類別,也有這樣子的意味在 10/15 16:04
推 changyuheng:在精神上有繼承與組成的不同。繼承主要看「自己是什 10/15 16:15
→ changyuheng:麼」。父母是什麼,自己就是什麼,而父母有什麼,自己 10/15 16:16
推 changyuheng:理所當然順便有,但不是為了有這些東西而繼承。組成是 10/15 16:18
→ changyuheng:指「由哪些東西組成」,或「要有什麼」,只要是指定要 10/15 16:19
→ changyuheng:有的功能,一個不能少,即使為了有而有。好比音樂播 10/15 16:20
→ changyuheng:放程式,是播放程式,所以繼承播放程式,順便有 play 10/15 16:22
→ gn00742754:借這篇文章想問一下,abstract class跟interface有什麼 10/15 16:22
推 changyuheng: 和 stop 的功能,而此音樂播放軟體被指定要有等化器 10/15 16:23
→ gn00742754:不同的地方呢? 10/15 16:23
→ changyuheng:的面板,因此「實現」了一套等化器「介面」。 10/15 16:25
推 jengjye:兩者目的不同吧 可以把介面想成是一個類似合約的東西 10/16 08:55
推 tomoyaken14:面試研究所的時候也有被問到... 10/16 09:47
→ Killercat:我總覺得這題會這樣回答的 大概都是C++出身的較多XD 10/16 12:17
→ Killercat:簡單地說 abstract是extract的意味 interface是contract 10/16 12:19
→ Killercat:C++正好是少數支援OO語言裡面 沒有真正interface的語言 10/16 12:21
→ larrycon:可插拔進行JUNIT TEST 10/16 14:46
→ sbrhsieh:樓上講的 abstract class 也能做到 10/16 15:25
→ Chikei:面試官這樣問的話這樣回答並沒錯阿,他是問Java為何要有 10/16 16:04
→ Chikei:白皮書裡面有講,介面的引入就是為了解決單繼承的問題 10/16 16:06
→ Chikei:精神之類的是為了建構出良好的型別架構才會這樣講的 10/16 16:10
→ Chikei:但是語言機制本身當初的確是為了單繼承的問題才引入介面 10/16 16:12
→ sbrhsieh:沒錯,排除多繼承的限制,我跟本想不出需要interface的理 10/16 16:23
→ Schelfaniel:因為沒介面的話要多重繼承的程式會很難寫 :QQ 10/16 20:42
→ jej:解答: 那麼你覺得呢? 10/17 13:18
→ Killercat:其實做到與否是一回事 extract&contract概念上有別 10/17 18:34
→ Killercat:同樣的東西繼承跟包含都能做到 不過兩者意義還是有差 10/17 18:35
→ yrulee:繼承本身就不是很有彈性,會被parent綁死 10/18 01:17
→ yrulee:多重繼承會帶出更多的問題,所以單繼承是一個解法而非問題 10/18 01:26
→ yrulee:而介面是為了補強單繼承這個解法所帶來的問題 10/18 01:30
→ yrulee:個人覺得Obj-C用 "Protocol" 就比 interface 好得多 10/18 01:37