Re: [問題] Abstract 和 Interface 差別?

看板java作者 (沉默是金)時間15年前 (2009/05/18 20:09), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/4 (看更多)
※ 引述《ieping (maggie)》之銘言: : 我只知道: : Interface: : 1.介面 : 2.須加static 這不是必須的 : 3.不能實做方法 : 4.通常用在多重繼承 ....這也不是重點 : 5.若類別要做interface要加上implements 介面_名稱 : Abstract: : 1.抽象 : 2.抽想類別 : 3.抽想方法 : 4.可以實做 : 問題: : 1.以上,還有其他的嗎? : 2.我有看人沒有先用extends 類別_名稱 直接 再類別用implements出好多的 介面 : 是不是這樣也可以?但不太知道代表的意思or概念? : 謝謝高手們~ 你對 interface 跟 Abstract 的描述其實有寫跟沒寫差不多. Abstract 跟 interface 在觀念上看起來差異不大 , 但在實做上適用的情況差很多 . 因為 inerface 是需要"實作" , 而且可以實作多個, (這跟多重繼承是兩回事...) 所以 interface 比較適合定義一群類別來共同實現某些接口 . for example , Clonable / Comparable . 藉此將類別匯聚成共同具有某些函式的介面 , 以此來透過多型進行操作. 而抽象類別的用法 , 則通常是作打底的功用 , 可能把屬於一群類別共同會用到的 method 提煉出來到父類別 , 但是就父類別本身目的/責任又不一定足以到成為一個類別 , 此時抽象類別就會是個好選擇 . 介面是一種"識別"/"多型操作"的手段 , 但不包含實做方式的傳遞 , 但抽象類別則主要是在於實作方式的共用與對實做方式的要求. 典型抽象類別跟 interface 不同用途的應用是 template method pattern. -- What do you want to have ? / What do you have? 從書本中,你可以發現我的各種興趣。 從CD中,你可以瞭解我所喜歡的偶像明星。 或許從文字你很難以瞭解一個人,但從物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.169.78.140

05/18 20:37, , 1F
看到tony大跪拜一下 小弟為了學java轉了不少你之前的文
05/18 20:37, 1F

05/18 22:27, , 2F
老師上課的時候是說,Interface是一種協定
05/18 22:27, 2F
文章代碼(AID): #1A4K_jqZ (java)
文章代碼(AID): #1A4K_jqZ (java)