posts - 12,  comments - 0,  trackbacks - 0
          方法調用的綁定:
          將方法的調用連到方法本身被稱為“綁定”。當綁定發生在程序運行之前時,被稱作“前綁定”。
          后綁定也稱為“動態綁定”或“運行時綁定”,指程序運行的時候,根據對象的類型來決定該綁定哪個方法。如果語言實現了后綁定,那它就必須要有能在運行時判斷對象類型,并且調用其合適方法的機制。也就是說編譯器還是不知道對象的類型,但是方法的調用機制會找出,并且調用正確的方法。
          除了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 on 2008-01-05 19:18 仰望者 閱讀(220) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 常熟市| 宜丰县| 高唐县| 伊宁市| 福贡县| 深水埗区| 法库县| 临朐县| 绍兴县| 肃南| 赤城县| 梁河县| 姚安县| 长岭县| 贵南县| 乐安县| 三都| 永修县| 桓仁| 高邮市| 囊谦县| 涞源县| 旌德县| 蓬溪县| 盐池县| 金华市| 遂平县| 冷水江市| 玉龙| 中阳县| 白城市| 资溪县| 望江县| 临邑县| 常熟市| 阳城县| 大荔县| 广州市| 四子王旗| 右玉县| 江津市|