繼承,接口,抽象類的區(qū)別是面試官最喜歡問的問題,因為編程中常用,這里不想說那些老生常談,只想借相聲打個比方.
繼承好比家學(xué)淵源,所謂"忠厚傳家久,詩書繼世長",家長總會潛移默化的影響下一代,下一代也會在不經(jīng)意中學(xué)習(xí)前輩的特點,但因為年少分辨能力不高加上世易時移有些優(yōu)點已經(jīng)不再是有點甚至?xí)兂扇秉c,下一代會把前輩的優(yōu)缺點不分良莠的繼承下來.這也是日后出現(xiàn)問題的根源.
接口好比拜師學(xué)藝,"入了這個門,就得說這行話",比如相聲界說學(xué)逗唱四門是必須要學(xué)的,但是"師傅領(lǐng)進(jìn)門,修行在個人",學(xué)得怎么樣還全看自己,指望不費力的繼承什么是不可能的,具體功夫還得個人來過. 因為是自己來,具體實現(xiàn)成什么樣自由度也很大,比如四門功課中的"唱",原指唱太平歌詞,但因為愛聽的少,現(xiàn)在相聲演員已經(jīng)不要求這個了,改為唱歌唱戲的唱,其實嚴(yán)格界定的話是"學(xué)"的一種.這也無所謂對錯,郭德剛堅持唱太平歌詞也行,笑林唱流行歌曲也不錯,總之實現(xiàn)了就可以,實現(xiàn)得怎么樣則留給實踐來檢驗.一個類可以同時實現(xiàn)多個接口,就和藝人拜幾個師傅是沒有問題的,郭德剛就同時實現(xiàn)了大鼓和相聲兩個接口.
抽象類則介于繼承和接口之間,既可不費力的從上一代繼承,也可強制實現(xiàn)某接口,有如某大師收自己的孩子為徒,當(dāng)然相聲界不讓這么干,其它曲藝行業(yè)還是可以的,比如京劇界的梅蘭芳和其子梅葆玖,既有言傳身教,也有強制實現(xiàn),綜合了繼承和接口的特點.
具體怎么用它們要看實際需要,如果是為了實現(xiàn)繼承體系,當(dāng)然是用繼承;如果只是強制子類必須和父類統(tǒng)一口徑,自然是用接口;如果子類說統(tǒng)一口徑行,但必須給我些東西,那還是用抽象類不可.
原文:
http://m.tkk7.com/sitinspring/archive/2007/06/04/121715.html