版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、JAVA面試題解惑系列(三)——變量(屬性)的覆蓋我們來看看這么一道題:Java代碼classParentClasspublicinti=10publicclassSubClassextendsParentClasspublicinti=30publicstaticvoidmain(String[]args)ParentClassparentClass=newSubClass()SubClasssubClass=newSubClass(
2、)System.out.println(parentClass.isubClass.i)自加System.out.println(parentClass.i)10System.out.println(subClass.i)30控制臺的輸出結(jié)果是多少呢?20?40?還是60?變量,或者叫做類的屬性,在繼承的情況下,如果父類和子類存在同名的變量會出現(xiàn)什么情況呢?這就是這道題要考查的知識點——變量(屬性)的覆蓋。這個問題雖然簡單,但是情況卻比
3、較復(fù)雜。因為我們不僅要考慮變量、靜態(tài)變量和常量三種情況,還要考慮private、friendly(即不加訪問修飾符)、protected和public四種訪問權(quán)限下對屬性的不同影響。我們先從普通變量說起。依照我們的慣例,先來看一段代碼:Java代碼classParentClassprivateStringprivateField=“父類變量private“friendlyStringfriendlyField=“父類變量friendly
4、“protectedStringprotectedField=“父類變量protected“publicStringpublicField=“父類變量public“private的變量無法直接訪問,因此我們給他增加了一個訪問方法publicStringgetPrivateFieldValue()returnprivateFieldSystem.out.println(subClazz.getPrivateFieldValue())子類變
5、量privateSystem.out.println(subClazz.friendlyField)子類變量friendlySystem.out.println(subClazz.protectedField)子類變量protectedSystem.out.println(subClazz.publicField)子類變量public這段代碼的運行結(jié)果如下:1、ParentClassparentClass=newParentClass(
6、)2、父類變量private3、父類變量friendly4、父類變量protected5、父類變量public6、7、ParentClasssubClass=newSubClass()8、子類變量private9、父類變量friendly10、父類變量protected11、父類變量public12、13、SubClasssubClazz=newSubClass()14、子類變量private15、子類變量friendly16、子類變量
7、protected17、子類變量public從上面的結(jié)果中可以看出,private的變量與其它三種訪問權(quán)限變量的不同,這是由于方法的重寫(override)而引起的。關(guān)于重寫知識的回顧留給以后的章節(jié),這里我們來看一下其它三種訪問權(quán)限下變量的覆蓋情況。子類型的對象,可以覆蓋父類屬性。父類型的對象,構(gòu)造方法是子類的(子轉(zhuǎn)父)不能覆蓋屬性,但子類同名實例方法被覆蓋,同名靜態(tài)方法不被覆蓋,而子類方法可以直接訪問子類屬性,父類方法只能訪問父類屬性
8、,子類方法可以訪問子類屬性和父類屬性(當然得有權(quán)限)。由于private變量的特殊性,在接下來的實驗中我們都把它排除在外,不予考慮。由于上面的例子已經(jīng)說明了,當變量類型是父類(ParentClass)時,不管我們創(chuàng)建的對象是父類(ParentClass)的還是子類(SubClass)的,都不存在屬性覆蓋的問題,因此接下來我們也只考慮變量類型和創(chuàng)建對象都是子類(SubClass)的情況。Java代碼classParentClassfrie
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java環(huán)境變量配置
- java環(huán)境變量設(shè)置
- 基于變量屬性分類的DEA模型研究.pdf
- 基于屬性覆蓋的關(guān)聯(lián)規(guī)則挖掘算法研究.pdf
- 覆蓋決策系統(tǒng)屬性約簡方法研究.pdf
- java面試題(內(nèi)容覆蓋率蠻全的)
- 覆蓋粗糙集的度量與屬性約簡方法研究.pdf
- 基于覆蓋算法的條件信息熵表示及屬性約簡.pdf
- 覆蓋粗糙集及其屬性約簡算法研究.pdf
- 混合粗糙集理論的非布爾屬性集覆蓋機.pdf
- 基于java的行業(yè)屬性關(guān)鍵詞擴展方法設(shè)計與實現(xiàn)
- Java卡代碼覆蓋率度量技術(shù)的研究與實現(xiàn).pdf
- 基于JAVA的行業(yè)屬性關(guān)鍵詞擴展方法設(shè)計與實現(xiàn).pdf
- 基于變量分組的路徑覆蓋測試數(shù)據(jù)生成建模及進化求解.pdf
- 基于屬性關(guān)聯(lián)的多變量空間數(shù)據(jù)場可視化研究.pdf
- JAVA卡代碼覆蓋率數(shù)據(jù)源機制的研究與計算.pdf
- 出現(xiàn)幾率最高和覆蓋范圍最廣的一套經(jīng)典java面試題
- 基于覆蓋的粗糙Vague集模型及Vague信息系統(tǒng)屬性約簡研究.pdf
- 39151.多變量地學(xué)三維屬性場體繪制方法研究
- 因變量 自變量 控制變量 調(diào)節(jié)變量 介入變量
評論
0/150
提交評論