1. 程式人生 > >Java面向物件-------多型總結

Java面向物件-------多型總結

1.多型:是同一個行為具有多個不同表現形式或形態的能力。

              多型就是同一個介面,使用不同的例項而執行不同操作,如圖所示:

多型性是物件多種表現形式的體現。

2.多型作用:

  • 1. 消除型別之間的耦合關係
  • 2. 可替換性
  • 3. 可擴充性
  • 4. 介面性
  • 5. 靈活性
  • 6. 簡化性

3.多型的三個必要條件:

  • 繼承
  • 重寫
  • 父類引用指向子類物件

4.多型處理屬性

         父類有,子類也有,獲取的是父類的屬性

         父類有,子類沒有,獲取的是父類的屬性

         父類沒有,子類有,獲取不到

         父類沒有,子類沒有,獲取不到

        注意:編譯看左邊,執行看左邊

        編譯器編譯完成之後,型別確定,但是物件無法確定,只有在執行的時候,new什麼物件,就是什麼物件

       

 5.多型處理方法

           父類有,子類也有,獲取的是子類的方法 (方法重寫)

           父類有,子類沒有,獲取的是父類的方法

           父類沒有,子類有,獲取不到

          

父類沒有,子類沒有,獲取不到

        注意:編譯看左邊,執行看右邊  (方法重寫)

    

6.多型的體現形式:

         向上轉型:父類的引用指向子類的物件

          父 f = new 子();

         向下轉型:把父類引用執行的子類物件強制轉為子類型別

          子 z = (子)f;

       注意:無論是基本型別還是引用型別,小轉大都是自動的,大轉小都是強制的,

       注意:型別越抽象,功能越少,型別越具體,功能越強大

       注意:引用型別之間做轉換,必須要有繼承關係

7.型別轉換

   (1):自動轉換   向上轉型

     子類物件轉為父類型別

語法: 父類 父類物件 = 子類例項,

   (2):強制轉換   向下轉型

     把父類引用子類的物件轉為子類本身(父類物件變為子類物件,

語法: 子類 子類物件 = (子類)父類例項,強制

 實際開發中,多型很常用,建立子類物件,儘量使用多型來建立,可以提高程式碼的靈活性和擴充套件性

 

說明:利用封裝,繼承,多型的知識寫一個Java程式

 題目要求:

      編寫程式實現比薩製作。需求說明編寫程式,接收使用者輸入的資訊,選擇需要製作的比薩。可供選擇的比薩有:培根比薩和海鮮比薩。

實現思路及關鍵程式碼

(1)分析培根比薩和海鮮比薩

(2)定義比薩類

(3)屬性:名稱、價格、大小

(4)方法:展示

(5)定義培根比薩和海鮮比薩繼承自比薩類

(6)定義比薩工廠類,根據輸入資訊產生具體的比薩物件