[爆卦]abstract interface差異是什麼?優點缺點精華區懶人包

為什麼這篇abstract interface差異鄉民發文收入到精華區:因為在abstract interface差異這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者TonyQ (沉默是金)看板java標題Re: [問題] Abstract 和 Interfac...



※ 引述《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
th19883617:看到tony大跪拜一下 小弟為了學java轉了不少你之前的文 05/18 20:37
Kelunyang:老師上課的時候是說,Interface是一種協定 05/18 22:27

你可能也想看看

搜尋相關網站