Java多型如何理解
多型概述
1、多型是繼封裝、繼承之後,面向物件的第三大特性。
2、多型現實意義理解:
-
現實事物經常會體現出多種形態,如學生,學生是人的一種,則一個具體的同學張三既是學生也是人,即出現兩種形態。
-
Java作為面向物件的語言,同樣可以描述一個事物的多種形態。如Student類繼承了Person類,一個Student的物件便既是Student,又是Person。
3、多型體現為父類引用變數可以指向子類物件。
4、前提條件:必須有子父類關係。
注意:在使用多型後的父類引用變數呼叫方法時,會呼叫子類重寫後的方法。
5、多型的定義與使用格式
定義格式:父類型別 變數名=new 子類型別();
多型中成員的特點
1、多型成員變數:編譯執行看左邊
1 2 |
|
2、多型成員方法:編譯看左邊,執行看右邊
1 2 |
|
instanceof關鍵字
作用:用來判斷某個物件是否屬於某種資料型別。
注意: 返回型別為布林型別
使用案例:
1 2 3 4 5 6 7 8 |
new Son();
|
多型的轉型
- 多型的轉型分為向上轉型和向下轉型兩種
- 向上轉型:多型本身就是向上轉型過的過程
使用格式:父類型別 變數名=new 子類型別();
適用場景:當不需要面對子類型別時,通過提高擴充套件性,或者使用父類的功能就能完成相應的操作。
- 向下轉型:一個已經向上轉型的子類物件可以使用強制型別轉換的格式,將父類引用型別轉為子類引用各型別
使用格式:子類型別 變數名=(子類型別) 父類型別的變數;
適用場景:當要使用子類特有功能時。
多型案例:
例1:(理解多型,可以重點看這個案例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
例2:
請問題目執行結果是什麼?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
答案:A B