posts - 12,  comments - 0,  trackbacks - 0
            2008年1月5日
          方法調用的綁定:
          將方法的調用連到方法本身被稱為“綁定”。當綁定發生在程序運行之前時,被稱作“前綁定”。
          后綁定也稱為“動態綁定”或“運行時綁定”,指程序運行的時候,根據對象的類型來決定該綁定哪個方法。如果語言實現了后綁定,那它就必須要有能在運行時判斷對象類型,并且調用其合適方法的機制。也就是說編譯器還是不知道對象的類型,但是方法的調用機制會找出,并且調用正確的方法。
          除了static和final方法(private方法隱含有final的意思),java的所有的方法都采用后綁定。也就是說,通常情況下你不必考慮是不是應該采用后綁定--它是自動的。 為什么要聲明final方法,上一章指出,這樣可以禁止別人覆寫這個方法,不過更重要的可能還是要“關閉”它的動態綁定,或者理確切的說,告訴編譯器這里不需要使用后綁定。
          shape為circle的基類,下面這句就是在“上傳”:
          Shape s = new Circle();
          這里先創建了一個Circle對象,接著馬上把它的引用賦給了Shape,看上去這像是一個錯誤(一種類型怎么能賦給另一種);但是由于Circle是由Shape派生出來的,Circle就是一種Shape,因此這種做法是非常正確的。假設你調用了一個基類的方法:s.draw();這里派生類里已經覆寫了此方法,那么可能你會認為,這次應該總調用Shape的draw()了吧,因為畢竟這是Shape的引用,但是由于實現了后綁定(多態性),實際上它會調用Circle.draw().
          posted @ 2008-01-05 19:18 仰望者 閱讀(220) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 闽清县| 临城县| 上虞市| 安达市| 绥江县| 安顺市| 吴忠市| 松潘县| 恩平市| 怀远县| 克什克腾旗| 依兰县| 于田县| 衡南县| 庄河市| 垫江县| 高淳县| 桂东县| 东丰县| 衡南县| 西宁市| 绥化市| 崇阳县| 沾益县| 镇宁| 高邑县| 乌兰浩特市| 海南省| 纳雍县| 呈贡县| 自治县| 开江县| 普安县| 雅江县| 滨州市| 汾西县| 临夏市| 延长县| 都昌县| 佛教| 浮梁县|