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

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

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

    隨筆-11  評論-10  文章-8  trackbacks-0
    關于 overloading 和 overriding
    首先 java 中所有的方法都采用后綁定,就是在運行時綁定(除了被聲明為 final 和 static 的)

    java通過方法的 signature 來判斷一個方法與其他方法的關系,是無關的,overload 或 override
    方法的 signature 可以肯定的是方法名和參數。返回值,權限修飾詞(public private),final,
    static 修飾詞的情況有點復雜后面依次討論。

    final && private
    被聲明為 final 或 private 的方法都是不能被 override 的,一定要注意這是兩個語義完全不同的詞,
    他們除此以外沒有任何聯系。final 不僅不允許子類 override,并且禁止子類使用名字和參數相同但返回
    值不同的方法 overload(如例子中的 functionEight()),而 private 不同,他對子類是不可見的
    你完全可以在子類中定義一個與父類一摸一樣的方法(這完全合理)。因此說 private 隱含有 final 的
    意思并不準確。 private 就是說 It's mine~~~~~~~~~ 對于類以外,沒有人知道它的存在。final
    只是說這個方法不想被你覆寫。

    返回值
    返回值不是方法的 signature,當方法名和參數相同時編譯器會強制要求返回值必須一致,但子類 override
    父類的方法返回值可以不同,同樣有一個條件返回值類型之間要有繼承關系!!(例子中的
    functionTwo() functionThree() functionFour() 很好的演示這種關系)。要 override,
    子類的返回值類型必須是父類的返回值類型的子類(有點拗口,看看 fanctionTwo() functionFour
    就會明白了),這也應該是我們想要的行為。

    public && private && protected
    繼承時方法的權限可以擴大但不能縮小(public > protected > none > private)(例子
    functionSix() and functionSeven())

    static
    你可以覆寫 static 方法,就像 functionFive() 一樣,看起來是 override,但實際上 static
    方法始終是前綁定,即在編譯時綁定的。所有永遠不會產生多態的效果,我們還是打消 override
    static 方法的念頭吧
    posted on 2005-08-24 01:17 JBahamut 閱讀(167) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 一级日本高清视频免费观看| 色窝窝亚洲AV网在线观看| 亚洲精品无码永久在线观看| 国产亚洲AV无码AV男人的天堂| 边摸边吃奶边做爽免费视频99| 精品国产精品久久一区免费式| 亚洲一区欧洲一区| a级毛片毛片免费观看永久| 亚洲性久久久影院| 久久精品成人免费国产片小草| 狠狠亚洲狠狠欧洲2019| 精品亚洲国产成人| 中文字幕一区二区免费| 亚洲裸男gv网站| a级成人毛片免费图片| 亚洲国产精品无码久久久不卡| 国产免费拔擦拔擦8X高清在线人 | 亚洲三级在线播放| 24小时免费直播在线观看| 亚洲国产欧洲综合997久久| 91大神免费观看| 亚洲国产高清在线精品一区| 青青草原1769久久免费播放| 四虎永久在线精品免费观看地址| 亚洲熟妇无码久久精品| a毛片全部播放免费视频完整18| 国产亚洲精品xxx| 亚洲三级在线免费观看| 亚洲AV无码专区在线播放中文| 在线人成精品免费视频| 亚洲国产成人无码AV在线| 亚洲国产精品人人做人人爽| 免费国产成人18在线观看| 亚洲av无码片在线观看| 免费看一级做a爰片久久| 91精品成人免费国产| 亚洲人成影院77777| 中文毛片无遮挡高潮免费| 久久综合亚洲色一区二区三区| 免费可以在线看A∨网站| 一个人看的在线免费视频|