posts - 6,  comments - 8,  trackbacks - 0

          一、面向對象的多態性
          多態定義:
          1.多態性是指“多種形式”,“一個對外接口,多個內在實現方法”。
          2.當系統A訪問系統B的服務時,系統B可以通過多種實現方式來提供服務,而這一切對系統A是透明的。運用了動態綁定機制。
          3.父類的某個方法被其子類重寫時,可以產生自己的行為。
          4.一個對象變量可以指向多種實際類型的現象;發送消息給某個對象,讓該對象自行決定響應何種行為。

          作用:實現接口和實現分離,有利于擴展和維護

          二、對象的類型轉換

          1.子類對象可以自動轉換成父類
          2.父類轉換成子類必須使用強制轉換(可編譯,不可運行
          3.instanceof操作符:判斷一個類是否實現了某個接口,也可以用來判斷一個實例對象是否屬于一個類。作用是測試它左邊的兌現是否是它右邊的類的實例

          三、方法的重載Overload
          如果類的方法(包括從父類中繼承的方法),同時存在一個以上的同名成員方法,只要它們的參數列表(數據類型,個數,順序)不同,即一個方法是另一個方法的重載方法


          四、方法的重寫Overrite,也叫覆蓋
          ①如果子類的方法與父類中被子類訪問(繼承)的方法具有相同的方法名稱、參數列表和返回類型,即子類的方法重寫了父類的方法
              總結      如果子類方法重寫了父類的方法那么必須保持方法名稱、參數列表、返回類型必須一致
          ②如果在子類中想調用父類中的那個被覆蓋的方法,我們可以用super方法的格式。
          ③覆蓋方法時,不能使用比父類中被覆蓋的方法更嚴格的訪問權限,父類方法用public子類次方法不能用private
          ④父類的非靜態方法不能被子類重寫為靜態方法
          ⑤父類的靜態方法不能被子類重寫為非靜態方法;
          ⑥子類隱藏了父類的靜態方法,不能重寫父類的靜態方法
          隱藏的區別:JVM把靜態方法和所屬的類綁定,實例方法和所屬的實例綁定
          ⑦父類的私有方法不能被子類重寫繼承
          五、抽象類與接口專題
          Java中可以定義一些不含方法體的方法,它的方法體的實現交給該類的子類根據自己情況取實現,這樣方法就是抽象方法,它含抽象方法的類就叫抽象類。

          abstract
          ①由abstract修飾的方法叫抽象方法;由abstract修飾的類叫抽象類
          ②抽象方法必須聲明在 抽象類中
          ③抽象方法語法:
          abstract type method_name(parameter_list);
          abstract 返回值類型 抽象方法(參數列表);
          ④聲明抽象類語法:abstract class{}
          ⑤使用:父類中的某些抽象不包含任何邏輯,并需要在子類中重寫,子類提供這種抽象方法的實現細節
          父類的抽象方法可以被子類重寫

          如何理解多態
          1.定義
          2.作用
          實現接口和實現分離,有利于擴展和維護
          3.原理
          類的類型轉換一致,JVM的動態綁定一致,運用這種機制,可以提高系統的松耦合性
          4.實現方式
          重寫,重載
          5.案例

          重寫的十二條規則
          1 子類從夫類繼承的方法
          2 具有相同的方法名稱
          3 參數列表相同
          4 返回值類型一致
          5 不能降低繼承發放的訪問權限
          6 父類的靜態方法不能被子類重寫為非靜態方法
          7 父類的非靜態方法不能被子類重寫為靜態方法
          8 子類隱藏了父類的靜態方法,不能重寫父類的靜態方法
          9  JVM把靜態的方法和所屬的類綁定,把實例對象和所屬的實例綁定
          10 父類的私有方法不能被子類重寫
          11 父類的非抽象方法可以被子類重寫為向后想方法
          12 父類的抽象方法可以被子類重寫為非抽象方法或是抽象方法

          案例如下:

          1public abstract class AbstracTest{
          2     public AbstractTest(){
          3        System.out.println("AbstractTest is going");
          4     }

          5     public void run1(){
          6        System.out.println("run1 is going");
          7     }

          8     abstract void run2();
          9}
          接口(interface)
          如果一個抽象類中的所有方法都是抽象的,可以用接口定義。
          接口是抽象方法和常量值的定義的集合,從本質上講,接口是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒有方法的實現。
          ①接口就是某個事物對外提供的一些功能的聲明;
          ②可以利用接口實現多態,同時接口也彌補了java單一繼承的弱點
          ③使用接口聲明方法或常量,接口中的方法只能聲明,不能是具體的實現。
          ④使用Interface關鍵字定義接口,案例如下
           1 interface Runner{
           2   int ID=1;
           3   void run();
           4}

           5interface Animal extends Runner{
           6    void breathe();
           7}

           8class Fish implements Animal{
           9    public void run(){
          10       System.out.println("fish is swimming");
          11    }

          12    public void breathe(){
          13      System.out.println("fish is bubbing");
          14    }

          15}

          面向對象設計的一個最核心的原則OCP(Open-Closed-Principle)
          OCP---Open,對擴展開發;Close,對修改關閉。
          posted on 2010-03-19 10:36 張貝貝 閱讀(150) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 澜沧| 湟源县| 四平市| 闽清县| 商河县| 永济市| 桑日县| 绩溪县| 奇台县| 阜南县| 龙州县| 于田县| 呼和浩特市| 集贤县| 长汀县| 修武县| 济宁市| 马公市| 奉贤区| 清流县| 苍山县| 玉山县| 青阳县| 吉林市| 高邑县| 临猗县| 雅江县| 江门市| 武宁县| 马公市| 阳新县| 社会| 遵义县| 稷山县| 南丹县| 福海县| 化德县| 佛冈县| 武宣县| 日喀则市| 陵川县|