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

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

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

    Corsair

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

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

    ?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?????/*運行結果
    21??????*?false
    22??????*?true
    23??????*?false
    24??????*?*/
    25?}

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

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

    評論

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

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

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

    @dennis
    恩,謝謝賜教,又學到新東西了~~
      回復  更多評論    
    主站蜘蛛池模板: 91精品免费久久久久久久久| 免费观看在线禁片| 亚洲高清中文字幕免费| 久久精品亚洲综合| 日韩精品无码免费专区午夜 | 国产男女爽爽爽爽爽免费视频| 国产精品亚洲片在线| 国内少妇偷人精品视频免费| 亚洲AV无码专区电影在线观看| 韩国免费a级作爱片无码| 国产av天堂亚洲国产av天堂| 日韩电影免费观看| 亚洲精品中文字幕乱码影院 | 国产男女猛烈无遮档免费视频网站 | 亚洲成a人片在线不卡一二三区 | 国产精品视_精品国产免费 | 亚洲免费在线视频| 亚洲一级特黄特黄的大片| 成年女人午夜毛片免费看| 美女免费视频一区二区| 在线观看亚洲天天一三视| 国产美女视频免费观看的网站| 亚洲AV日韩AV永久无码绿巨人| 在线观看永久免费| 亚洲av无码成人精品区一本二本 | 亚洲大码熟女在线观看| 亚洲无码黄色网址| 热re99久久6国产精品免费| 亚洲av无码不卡久久| 又大又硬又爽免费视频| 西西人体免费视频| 亚洲人成777在线播放| 亚洲不卡无码av中文字幕| 免费毛片在线看不用播放器| 亚洲日韩国产精品无码av| 国产又大又粗又硬又长免费 | 国产公开免费人成视频| 久久这里只精品99re免费| 亚洲一区AV无码少妇电影| 亚洲精品中文字幕无码蜜桃| 一个人看的www在线观看免费|