Java 類(lèi)的受保護(hù)訪問(wèn)(學(xué)習(xí) Java 編程語(yǔ)言 046)

最好將類(lèi)中的字段標(biāo)記為 private踏志,而方法標(biāo)記為 public阀捅。任何聲明為 private 的內(nèi)容對(duì)其他類(lèi)都是不可見(jiàn)的。這對(duì)子類(lèi)來(lái)說(shuō)也完全適用针余,即子類(lèi)也不能訪問(wèn)超類(lèi)的私有字段也搓。

Java 中的受保護(hù)部分對(duì)所有子類(lèi)及同一個(gè)包中的所有其他類(lèi)都可見(jiàn)。

有時(shí)候可能希望限制超類(lèi)中的某個(gè)方法只允許子類(lèi)訪問(wèn)涵紊,或者允許子類(lèi)的方法訪問(wèn)超類(lèi)的某個(gè)字段。需要將這些類(lèi)方法或字段聲明為受保護(hù)(protected)幔摸。例如摸柄,如果將超類(lèi) Employee 中的 hireDay 字段聲明為 protected,而不是 private既忆,Manager 類(lèi)的方法就可以直接訪問(wèn)這個(gè)字段驱负。

Employee 類(lèi)

public class Employee {
    // 聘用日期
    protected LocalDate hireDay;

    ...
}

Employee 類(lèi)的子類(lèi)們:

public class Manager extends Employee {...}

public class Programmer extends Employee {...}

在 Java 中,對(duì)象的保護(hù)字段只能由同一個(gè)包中的類(lèi)訪問(wèn)』脊停現(xiàn)在考慮一個(gè) Programmer 子類(lèi)跃脊,這個(gè)子類(lèi)在另一個(gè)不同的包中。Programmer 類(lèi)中的方法只能查看 Programmer 對(duì)象自己的 hireDay 字段苛吱,而不能查看其它 Employee 對(duì)象的這個(gè)字段酪术。有了這個(gè)限制,就能避免濫用保護(hù)機(jī)制翠储,不能通過(guò)派生子類(lèi)的對(duì)象來(lái)訪問(wèn)超類(lèi)對(duì)象的受保護(hù)的字段绘雁。

在實(shí)際應(yīng)用中,要謹(jǐn)慎使用受保護(hù)字段援所。假設(shè)你的類(lèi)要提供給其他程序員使用庐舟,而你在設(shè)計(jì)這個(gè)類(lèi)時(shí)設(shè)置了一些受保護(hù)字段。你不知道的是住拭,其他程序員可能會(huì)由這個(gè)類(lèi)再派生出新類(lèi)挪略,并開(kāi)始訪問(wèn)你的受保護(hù)字段历帚。在這種情況下,如果你想修改你的類(lèi)的實(shí)現(xiàn)杠娱,就勢(shì)必會(huì)影響那些程序員挽牢。這違背了 OOP 提倡數(shù)據(jù)封裝的精神。

受保護(hù)的方法更具有實(shí)際意義墨辛。如果需要限制某個(gè)方法的使用卓研,就可以將它聲明為 protected。這表明子類(lèi)(可能很熟悉祖先類(lèi))得到了信任睹簇,可以正確地使用這個(gè)方法奏赘,而其他類(lèi)則不行。
這種方法的一個(gè)很好示例就是 Object 類(lèi)中的 clone 方法太惠。

public class Object {
    @HotSpotIntrinsicCandidate
    protected native Object clone() throws CloneNotSupportedException;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末磨淌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子凿渊,更是在濱河造成了極大的恐慌梁只,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埃脏,死亡現(xiàn)場(chǎng)離奇詭異搪锣,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)彩掐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)构舟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人堵幽,你說(shuō)我怎么就攤上這事狗超。” “怎么了朴下?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵努咐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我殴胧,道長(zhǎng)渗稍,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任团滥,我火速辦了婚禮免胃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘惫撰。我一直安慰自己羔沙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布厨钻。 她就那樣靜靜地躺著扼雏,像睡著了一般坚嗜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诗充,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天苍蔬,我揣著相機(jī)與錄音,去河邊找鬼蝴蜓。 笑死碟绑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茎匠。 我是一名探鬼主播格仲,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼诵冒!你這毒婦竟也來(lái)了凯肋?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤汽馋,失蹤者是張志新(化名)和其女友劉穎侮东,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體豹芯,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悄雅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了铁蹈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宽闲。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖木缝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情围辙,我是刑警寧澤我碟,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站姚建,受9級(jí)特大地震影響矫俺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掸冤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一厘托、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧稿湿,春花似錦铅匹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)流礁。三九已至,卻和暖如春罗丰,著一層夾襖步出監(jiān)牢的瞬間神帅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工萌抵, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留找御,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓绍填,卻偏偏與公主長(zhǎng)得像霎桅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沐兰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容