Java學(xué)習(xí)

          java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經(jīng)搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進(jìn)步

           

          java中創(chuàng)建子類實(shí)例怎么調(diào)用父類的覆蓋方法

          問題:

          A 為父類,B為子類,都有一個(gè)m()方法,
          B b=new B();
          ((A)b).m();
          這樣為什么還是調(diào)用的B類的方法呢
          是不是調(diào)用父類覆蓋方法只能用SUPER呢
          還有,事例化一個(gè)子類對象后怎么調(diào)用父類方法呢
          才學(xué),知道的請說下



          答案:

          B b=new B(); 這種方式,實(shí)際上是實(shí)例化了子類的對象,注意:內(nèi)存中還是子類對象。
          ((A)b).m(); 表面上看起來是父類對象了,但是由于內(nèi)存中是子類對象,所以調(diào)用的還是子類方法。

          A b=new B();
          b.m();
          這種方法和你寫的實(shí)際是一個(gè)效果,雖然上溯造型到了父類,由于子類重寫了父類的方法,調(diào)用的還是子類的方法(也就是所:方法的實(shí)現(xiàn),最后是在子類中實(shí)現(xiàn)的)。

          所以,總結(jié)如下:
          如果子類沒有重寫父類的方法,調(diào)用父類的方法的時(shí)候,實(shí)際上是去父類的內(nèi)存中實(shí)現(xiàn),可以調(diào)用父類方法。
          如果子類重寫了父類的方法,那么,你雖然上溯造型到了父類,由于內(nèi)存還是子類,該方法的實(shí)現(xiàn)還是在子類,所以用實(shí)例化的對象是調(diào)用不到父類的,這種情況下,只能用super關(guān)鍵字。

          用static的情況不討論的情況下不討論是這樣的,不知道到您是否不滿意,不滿意的話可以發(fā)消息繼續(xù)討論。


          posted on 2009-10-16 09:01 找個(gè)美女做老婆 閱讀(3309) 評論(2)  編輯  收藏

          評論

          # re: java中創(chuàng)建子類實(shí)例怎么調(diào)用父類的覆蓋方法 2010-07-22 17:50 ijlusryygy

          B b=new B();
          Class a=b.getClass().getSuperclass();
          ((A)a.newInstance()).c();  回復(fù)  更多評論   

          # re: java中創(chuàng)建子類實(shí)例怎么調(diào)用父類的覆蓋方法 2013-10-08 14:34 ggggggg

          不明覺厲@ijlusryygy
            回復(fù)  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          本blog已經(jīng)搬到新家了, 新家:www.javaly.cn
           http://www.javaly.cn

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 福海县| 南部县| 新乡县| 阜南县| 安图县| 台南县| 分宜县| 宁远县| 四平市| 潍坊市| 宽甸| 台南市| 阿拉善左旗| 乌什县| 阿克陶县| 军事| 黔东| 乡城县| 安仁县| 上虞市| 曲周县| 论坛| 台中县| 彭山县| 阳山县| 北宁市| 台东县| 惠东县| 龙岩市| 兰坪| 汨罗市| 沿河| 句容市| 仁怀市| 石家庄市| 华安县| 朝阳区| 绥棱县| 宁都县| 新宁县| 高州市|