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