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)定義比薩工廠類,根據輸入資訊產生具體的比薩物件