真善美

          勇于承擔(dān)責(zé)任; 如果你做不到,要提前跟別人說明,不要等到事情發(fā)生后再解釋。

            BlogJava :: 首頁 ::  :: 聯(lián)系 :: 聚合  :: 管理 ::
            55 隨筆 :: 0 文章 :: 29 評(píng)論 :: 0 Trackbacks

          面向?qū)ο蟪绦蛟O(shè)計(jì)的三大原則是封裝性、繼承性、多態(tài)性。

          這里主要說一下多態(tài)性,在說多態(tài)之前先說幾個(gè)概念:
          將一個(gè)方法調(diào)用同一個(gè)方法主體連接到一起就稱為“綁定”(Binding)。
          若在程序運(yùn)行前執(zhí)行綁定(由編譯器和鏈接程序完成——如果有的話),就叫作“早期綁定”。

          Java在運(yùn)行時(shí)動(dòng)態(tài)的調(diào)用方法,這叫后期綁定(late binding,后期綁定也叫作“動(dòng)態(tài)綁定”或“運(yùn)行時(shí)間綁定”)。
          注:final方法不能被重載,對(duì)方法的調(diào)用可以在編譯時(shí)解決,這屬于早期綁定。

          Java的所有方法綁定都采用“后期綁定”技術(shù),除非一個(gè)方法已被明確聲明成final。也就是說,我們通常不必關(guān)心是否會(huì)進(jìn)行后期綁定——它是自動(dòng)進(jìn)行的。

          多態(tài)性是指允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。做個(gè)簡(jiǎn)單比喻:你兒子喊你,你會(huì)說:“嗨,兒子”。你父親喊你,你會(huì)說:“嗨,爸爸。”。對(duì)同一消息(有人喊你),做出的反應(yīng)不同(做出不同的反應(yīng))。

          常見的兩種多態(tài)方式為:① 重寫 ② 重載

          重寫(Overriding)是父類與子類之間多態(tài)性的一種表現(xiàn),如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,而父類中的定義則被“屏蔽”了。

          注意:
          1、 方法名稱一定要一樣
          2、 返回值的數(shù)據(jù)類型要一樣。
          3、 所使用的參數(shù)要一樣,包括參數(shù)個(gè)數(shù)及每個(gè)參數(shù)的數(shù)據(jù)類型也要一樣。
          4、 限定詞的使用權(quán)限只能越開放,不能越封閉。
          5、 類方法不能被重寫,只有未使用static限定詞的方法可以被重寫。 

          重載(Overloading)是一個(gè)類中多態(tài)性的一種表現(xiàn)。如果在一個(gè)類中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

          為什么要重載方法?
          重載方法允許Java支持運(yùn)行時(shí)多態(tài)性。多態(tài)性是面向?qū)ο缶幊痰谋举|(zhì),原因如下:它允許通用類指定方法,這些方法對(duì)該類的所有派生類都是公用的。同時(shí)該方法允許子類定義這些方法中的某些或全部的特殊實(shí)現(xiàn)。重載方法是Java實(shí)現(xiàn)它的多態(tài)性—“一個(gè)接口,多個(gè)方法”的另一種方式。
           
          構(gòu)造函數(shù)可以從超類那里繼承,也可以互相重載。類的若干個(gè)構(gòu)造函數(shù)可以相互調(diào)用,一個(gè)構(gòu)造函數(shù)調(diào)用另一構(gòu)造函數(shù)時(shí),可以使用關(guān)鍵字this。同時(shí),這個(gè)調(diào)用語句應(yīng)該是整個(gè)構(gòu)造函數(shù)的第一個(gè)可執(zhí)行語句。

          參考:Thinking.in.Java簡(jiǎn)體中文第二版

          posted on 2007-07-11 17:26 真善美 閱讀(277) 評(píng)論(0)  編輯  收藏 所屬分類: Java學(xué)習(xí)
          主站蜘蛛池模板: 凤冈县| 陇西县| 秭归县| 上犹县| 霸州市| 洛扎县| 开平市| 车致| 扶余县| 洪泽县| 静安区| 河北区| 永年县| 永靖县| 余江县| 龙井市| 淮南市| 韩城市| 万年县| 陈巴尔虎旗| 荥阳市| 翁牛特旗| 竹北市| 信宜市| 张北县| 东山县| 比如县| 安国市| 拜泉县| 通许县| 高州市| 增城市| 永平县| 安宁市| 甘谷县| 那曲县| 安溪县| 安泽县| 安康市| 扬州市| 泰州市|