這篇文章運(yùn)用了實例代碼展示java中protected關(guān)鍵字的用法,代碼非常詳細(xì),可供感興趣的小伙伴們參考借鑒,希望對大家有所幫助。
首先我們來看一下如下兩個示例:
示例一:
//包A中有一個動物類 package testa; public class Animal { protected void crowl(String c){ System.out.println(c); } }
示例二:
package testb; import testa.Animal; class Cat extends Animal { } public class Rat extends Animal{ public void crowl(){ this.crowl("zhi zhi"); //沒有問題,繼承了Animal中的protected方法——crowl(String) Animal ani=new Animal(); ani.crowl("animail jiaojiao"); //wrong, The method crowl(String) from the type Animal is not visible Cat cat=new Cat(); cat.crowl("miao miao"); //wrong, The method crowl(String) from the type Animal is not visible } }
既然,貓和鼠都繼承了動物類,那么在鼠類的作用范圍內(nèi),看不到貓所繼承的crowl()方法呢?
問題解答:
protected受訪問保護(hù)規(guī)則是很微妙的。雖然protected域?qū)λ凶宇惗伎梢姟5怯幸稽c很重要,不同包時,子類只能在自己的作用范圍內(nèi)訪問自己繼承的那個父類protected域,而無法到訪問別的子類(同父類的親兄弟)所繼承的protected域和父類對象的protected域ani.crow1()。 說白了就是:老鼠只能叫"zhi,zhi"。即使他能看見貓(可以在自己的作用域內(nèi)創(chuàng)建一個cat對象),也永遠(yuǎn)無法學(xué)會貓叫。
也就是說,cat所繼承的crowl方法在cat類作用范圍內(nèi)可見。但在rat類作用范圍內(nèi)不可見,即使rat,cat是親兄弟也不行。
另外: 這就是為什么我們在用clone方法的時候不能簡單的直接將對象aObject.clone()出來的原因了。而需要在aObject.bObject=(Bobject)this.bObject.clone();
總結(jié):
當(dāng)B extends A的時候,在子類B的作用范圍內(nèi),只能調(diào)用本子類B定義的對象的protected方法(該方法從父類A中繼承而來)。而不能調(diào)用其他A類(A 本身和從A繼承)對象的protected方法。
看完上述內(nèi)容,你們對java中的protected關(guān)鍵字有進(jìn)一步的了解嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞名稱:java中protected關(guān)鍵字的用法-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://www.chinadenli.net/article48/gsshp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、移動網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、軟件開發(fā)、網(wǎng)站維護(hù)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)