Re: [問題] Abstract 和 Interface 差別?
※ 引述《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
05/18 20:37, 1F
推
05/18 22:27, , 2F
05/18 22:27, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章