<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Corsair

    My javaWorld
    數(shù)據(jù)加載中……
    向上轉(zhuǎn)型中子類將能看到父類被覆蓋字段的現(xiàn)象探討

    我們知道,在子類繼承父類之后,如果子類與父類有同名的字段和方法,那么子類中的子段會(huì)代替或隱藏父類的子段,說明子類字段覆蓋了超類字段,但可以通過super關(guān)鍵字去訪問超類字段。但是,在我們將子類對象向超類轉(zhuǎn)型的時(shí)候就會(huì)發(fā)生這個(gè)奇怪的現(xiàn)象,子類對象居然可以看到父類曾經(jīng)被覆蓋掉的字段!就正如下面例子中一樣:

    ?1?class?A{
    ?2?????boolean?bb?=false;
    ?3?}
    ?4?
    ?5?public?class?B?extends?A{
    ?6?????boolean?bb?=?true;
    ?7?????//int?a=1;
    ?8?????public?static?void?main(String[]?args)?{
    ?9?????????B?b?=new?B();
    10?????????A?a?;
    11?????????a=?b;
    12?????????//---??
    13?????????System.out.println(a.bb);
    14?????????//---這句可以理解
    15?????????System.out.println(b.bb);
    16?????????//---??
    17?????????System.out.println(?((A)b).bb);
    18?????????//----
    19?????}
    20?????/*運(yùn)行結(jié)果
    21??????*?false
    22??????*?true
    23??????*?false
    24??????*?*/
    25?}

    為什么會(huì)發(fā)生這樣的情況呢?
    關(guān)于這種情況的解釋在[美]Peter van der Linden著的《Just Java2》中有了答案:
    P106他說:
    ???一定要注意:當(dāng)把子類轉(zhuǎn)換成超類時(shí),子類可以見到或訪問被隱藏的同名變量。Java允許名字重復(fù)的原因是,允許將來把新的字段加到超類中,而不影響已經(jīng)使用了該名字的現(xiàn)有子類,子類將會(huì)繼續(xù)使用自己的字段副本。除非讓子類以超類對象的形式出現(xiàn),方法可以覆蓋,但是字段不能被覆蓋。注意:最好不要隱藏超類中的字段名。
    ?????
    所以我們在進(jìn)行向上轉(zhuǎn)型的時(shí)候一定要注意:不要訪問子類中那些“覆蓋”掉父類的字段(它并沒有真正覆蓋掉,在向上轉(zhuǎn)型的時(shí)候就可以訪問的到),要么將子類字段改名(在你知道父類代碼的情況下),要么通過方法來訪問字類字段(方法即使同名也肯定能覆蓋掉)。

    posted on 2007-03-31 11:31 銀河海盜 閱讀(709) 評論(2)  編輯  收藏 所屬分類: JAVA

    評論

    # re: 向上轉(zhuǎn)型中子類將能看到父類被覆蓋字段的現(xiàn)象探討 2007-04-01 19:07 dennis

    變量都是靜態(tài)綁定,只有實(shí)例方法才是動(dòng)態(tài)綁定。或者說只有方法才有多態(tài),而變量是沒有的
      回復(fù)  更多評論    

    # re: 向上轉(zhuǎn)型中子類將能看到父類被覆蓋字段的現(xiàn)象探討 2007-04-02 20:17 銀河海盜

    @dennis
    恩,謝謝賜教,又學(xué)到新東西了~~
      回復(fù)  更多評論    
    主站蜘蛛池模板: 亚洲中文无韩国r级电影| 国产精品美女午夜爽爽爽免费| 国产又粗又猛又爽又黄的免费视频 | 亚洲av永久中文无码精品| AV无码免费永久在线观看| 亚洲伊人久久大香线蕉影院| 精品国产sm捆绑最大网免费站 | 亚洲成人中文字幕| 久别的草原电视剧免费观看| 久久青青草原亚洲av无码app| 十八禁无码免费网站| 亚洲国产情侣一区二区三区| 九九九精品成人免费视频| 久久亚洲国产成人影院| 国产成人免费a在线资源| 一级一级一片免费高清| 亚洲男人的天堂一区二区| 人成电影网在线观看免费| 亚洲精品无码久久久久| 99久久精品免费精品国产| 亚洲视频无码高清在线| 免费大片黄手机在线观看| 成人免费av一区二区三区| 亚洲精品在线免费观看| 18禁成年无码免费网站无遮挡 | 免费观看久久精彩视频| 亚洲欧洲精品久久| 毛片免费观看网址| 日本精品久久久久久久久免费| 亚洲第一AAAAA片| 在线v片免费观看视频| 日本中文字幕免费看| 亚洲AV人无码激艳猛片| 成年人免费视频观看| 又硬又粗又长又爽免费看 | 亚洲日韩在线观看免费视频| 久久久久久亚洲精品| 免费观看的a级毛片的网站| 亚洲欧洲日产国码无码网站| a毛片基地免费全部视频| 人成电影网在线观看免费|