a.繼承復(fù)用破壞包裝,因?yàn)槔^承將超類的實(shí)現(xiàn)細(xì)節(jié)暴露給子類。由于超類的內(nèi)部細(xì)節(jié)常常是對于子類透明的,所以這種復(fù)用是透明的復(fù)用,又稱“白箱”復(fù)用。 b.如果超類發(fā)生改變,那么子類的實(shí)現(xiàn)也不得不發(fā)生改變。 c.從超類繼承而來的實(shí)現(xiàn)是靜態(tài)的,不可能在運(yùn)行時(shí)間內(nèi)發(fā)生改變,沒有足夠的靈活性。 其中a.繼承將超類的實(shí)現(xiàn)細(xì)節(jié)暴露給子類; 對于父類來說,暴露給子類的只能是pretected權(quán)限(如果在一個(gè)包中,還有package),而對于一個(gè)類來說,實(shí)現(xiàn)細(xì)節(jié)應(yīng)該被控制為private;實(shí)在不明白暴露實(shí)現(xiàn)細(xì)節(jié)怎么理解?? 第二.對于c從超類繼承而來的實(shí)現(xiàn)是靜態(tài)的,不可能在運(yùn)行時(shí)間內(nèi)發(fā)生改變,沒有足夠的靈活性。 這里的靜態(tài)怎么理解,不能改變又怎么理解?????? 請哪位慕友點(diǎn)撥一下哈,萬分感謝??!
2 回答

catspeake
TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
1,父類的實(shí)現(xiàn)細(xì)節(jié)不是要暴露給子類,而是基本上規(guī)定了這個(gè)方法在什么時(shí)候適用,并且給子類修改的機(jī)會。
2,繼承用法我覺得有兩種,一是子類方便利索的得到父類的特性和方法,而是重構(gòu);假如是一的話,大可不比糾結(jié)暴露不暴露的問題,因?yàn)槲覀儽旧砭褪窍氲玫礁割惖囊磺?,減少重復(fù)代碼,假如是二的話,一般來說會用父類的對象指向子類引用,那么在操作過程中,肯定是父類的對象來調(diào)用方法,也就是說,你子類暴露的方法基本上得和父類一樣,因?yàn)槟愫透割惒煌姆椒ɑ旧蠜]機(jī)會調(diào)用,頂多是類里面的方法自己調(diào)用而已,
那么這樣就體現(xiàn)了靈活性,有的書叫做后綁定。從超類繼承而來的實(shí)現(xiàn)是靜態(tài)的就表示你在語言一級的特性上再怎么變換,編譯好的class和方法基本上不會變的,除非你用字節(jié)碼改變。
添加回答
舉報(bào)
0/150
提交
取消