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

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

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

    冰浪

    哥已不再年輕 - 堅定夢想,畢生追求!
    posts - 85, comments - 90, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    [原]java語言中方法覆蓋的一點思考

    Posted on 2007-02-16 20:15 冰浪 閱讀(437) 評論(1)  編輯  收藏 所屬分類: Java

    ????????? 在java的繼承中,我們可以在子類中定義一方法去覆蓋父類中定義的同名同參方法,這叫方法覆蓋。其中有一點讓我幾經思考:父類的私有方法不能被子類覆蓋。
    ??? 我們先來看一個例程(引用孫MM的,呵呵):
    //Sub.java? ,例程1?
    class Base
    {
    ?private String showMe()
    ?{
    ??return "Base";
    ?}
    ?public void print()
    ?{
    ??System.out.print(showMe());//調用誰的showMe()方法呢?
    ?}
    }

    class Sub extends Base
    {
    ?public String showMe()
    ?{
    ??return "Sub";
    ?}
    ?public static void main(String[] args)
    ?{
    ??Sub sub=new Sub();
    ??sub.print();
    ?}
    }

    從例程中我們可以看到,在父類Base中定義了一private訪問權限的showMe()方法,在子類Sub中又定義了public訪問權限的showMe()方法。
    運行這個例程,得到的打印結果是“Base”。
    同樣,我們將例程做些修改:將Base類的showMe()方法的訪問權限改為public,即:
    //Sub.java? ,例程2
    class Base
    {
    ?public String showMe()
    ?{
    ??return "Base";
    ?}
    ?public void print()
    ?{
    ??System.out.print(showMe());
    ?}
    }
    class Sub extends Base
    {
    ?public String showMe()
    ?{
    ??return "Sub";
    ?}
    ?public static void main(String[] args)
    ?{
    ??Sub sub=new Sub();
    ??sub.print();
    ?}
    }
    再次運行例程,得到的打印結果是“Sub”。

    兩次結果不一致,很顯然是private在作怪,對!一開始我就提到了這點:父類的私有方法不能被子類覆蓋。

    在例程2中,sub.print()所調用的是自己的showMe()方法,此時,Sub類的showMe()方法已覆蓋了父類的方法,所以在Sub類中繼承Base類的print()方法所調用的就是自己的showMe()方法。

    而在例程1中,Sub類的showMe()方法并不能覆蓋父類Base的showMe()方法,這兩個showMe()方法之間并不存在覆蓋關系。此時先要明白一點:print()方法是在Base類中定義的,所以當執行sub.print()這句代碼時,JVM首先在sub實例對象時無法找到匹配的showMe()方法,所以就直接調用其父類的showMe()方法。然而在例程2中,Sub類的showMe()方法已覆蓋其父類的相應方法,所以JVM在sub實例對象里找到了相匹配的自己的showMe()方法,所以調用其來執行,不再調用父類的方法。


    評論

    # re: [原]java語言中方法覆蓋的一點思考  回復  更多評論   

    2007-02-16 20:34 by 喜來了
    不光是private的方法不能重載,static, final都不能重載
    主站蜘蛛池模板: 在线观看视频免费国语| free哆啪啪免费永久| 免费又黄又爽的视频| 亚洲欧美黑人猛交群| 免费黄色网址入口| 亚洲1区2区3区精华液| 国产高清在线精品免费软件| 亚洲一区二区三区高清不卡| 成人啪精品视频免费网站| 亚洲国产日韩a在线播放| 国产午夜免费秋霞影院| 一级毛片免费不卡| 亚洲av最新在线网址| 好湿好大好紧好爽免费视频| 久久综合图区亚洲综合图区| 91精品啪在线观看国产线免费| 亚洲精品视频久久| 在线免费观看一级片| 美女视频黄频a免费观看| 亚洲日韩中文在线精品第一| 在线观看特色大片免费网站| 337p欧洲亚洲大胆艺术| 免费高清在线影片一区| 成人免费网站久久久| 久久久久亚洲AV成人无码| av免费不卡国产观看| 18禁亚洲深夜福利人口| 国产亚洲一区二区在线观看| 91成人免费观看| 国产亚洲精品欧洲在线观看| 亚洲精品蜜桃久久久久久| h视频在线观看免费网站| 国产成人亚洲综合a∨| 亚洲av日韩综合一区在线观看| 亚洲免费网站观看视频| 日韩精品免费一线在线观看| 亚洲视频2020| 四虎永久在线精品免费观看地址 | 永久免费av无码网站大全| 精品97国产免费人成视频| 久久精品国产亚洲av麻豆图片|