多型~
理解多型性:一個事物的多種形態
何為多型性:物件的多型性-------->父類的引用指向子類的物件
多型的使用:即虛擬方法呼叫
有了物件的多型性後,我們在編譯期,只能呼叫父類中宣告的方法,但在執行期,我們實際執行的是子類重寫父類的方法。
多型性的使用前提:類的繼承關係、子類重寫了父類的方法
物件的多型性只適用於方法,不適用於屬性
為什麼使用向下轉型:
有了物件的多型性後,記憶體中實際上是載入了子類特有的屬性和方法的,但是由於變數宣告為父類型別,導致編譯時,只能呼叫父類中宣告的屬性和方法。子類特有的屬性和方法不能呼叫。這時使用強制型別轉換符實現向下轉型
a instanceof A : 判斷物件a是否是類A的例項。如果是,返回true,如果不是,返回false
使用場景:為了避免在向下轉型時出現ClassCastException的異常,我們在向下轉型之前,先進行instanceof的判斷,
一旦返回true,就向下轉型。如果返回false,則不向下轉型。
== 和 equals方法的區別:
==:運算子
1、可以使用在基本資料型別變數和引用資料型別變數中
2、如果比較的是基本資料型別變數:比較兩個變數儲存的資料是否相等(不一定要型別相同)
如果比較的是引用資料型別變數:比較兩個物件的地址值是否相同,即兩個引用是否指向同一個物件實體
equals()方法的使用:
1、是一個方法,而非運算子
2、只能適用於引用資料型別
3、Object類中定義的equals()和 == 作用是相同的,比較的是地址值是否相同
4、像String 、Data 、File、包裝類等都重寫了Object類中的equals()方法。重寫以後,比較的不是兩個引用的地址是否
相同,而是比較兩個物件的實體內容是否相同。
5、通常情況下:我們自定義的類如果使用的equals()方法的話,,也通常是比較兩個物件的實體內容是否相同。那麼我們就需要對Object類的equals()方法進行重寫。
包裝類的使用:
java提供了8種基本資料型別對應的包裝類,使得基本資料型別的變數具有類的特徵
總結:
Java5.0以前:
基本資料型別---->包裝類:呼叫包裝類的構造器
eg: int num1 = 10;
Integer in1 = new Integer(num1);
System.out.println(in1.toString());
包裝類---->基本資料型別:呼叫包裝類的xxxValue()方法
eg: Integer in1 = new Integer(12);
int i1 = in1.intValue();
System.out.println(i1 + 1);
Java5.0新特性以後:
基本資料型別---->包裝類:即自動裝箱
eg: int num2 = 10;
Integer in1 = num2;
包裝類---->基本資料型別:即自動拆箱
eg: int num3 = in1;
到了Java5.0以後,就不加區分的在基本資料型別和包裝類中互相轉換
基本資料型別、包裝類----->String型別:呼叫String過載的valueOf( )方法
eg: float f1 = 12.3f;
String str2 = String.valueOf(f1);
Double d1 = new Double(12.4);
String str3 = String.valueOf(d1);
String型別----->基本資料型別、包裝類:呼叫包裝類的parseXxx(String s)方法
eg: String str1 = "123";
int num1 = Integer.parseInt(str1);
System.out.println(num1 + 1);
String str2 = "true";
boolean b1 = Boolean.parseBoolean(str2);
System.out.println(b1);
相關文章
- 多型。多型
- 多型多型
- 多型性多型
- Java多型Java多型
- 11 #### 多型多型
- 多型,向上向下轉型多型
- 什麼是Java多型?如何實現Java多型?Java多型
- Java 的多型Java多型
- java多型demoJava多型
- 多型的概述多型
- java多型特性Java多型
- C++——多型C++多型
- 20-多型多型
- 多型消除if else多型
- 多型性概述多型
- C++多型C++多型
- 瞭解多型多型
- 什麼是多型?物件導向中對多型的理解多型物件
- 實現多型多對多 幾個注意點多型
- PHP中有多型麼PHP多型
- 多型和抽象類多型抽象
- 繼承與多型繼承多型
- 多型的總結多型
- C# 多型性C#多型
- java中的多型Java多型
- 封裝和多型封裝多型
- Java學習-多型Java多型
- 封裝,特性,多型封裝多型
- 多型和繼承多型繼承
- 小例子理解多型多型
- 多型中的返回值型別多型型別
- 多型體驗,和探索爺爺類指標的多型性多型指標
- JAVA高階物件導向二:認識多型 多型的好處Java物件多型
- Python:多型、協議和鴨子型別Python多型協議型別
- RecyclerView 多條目型別含有多個EditTextView型別
- php-多型的理解PHP多型
- Python 繼承 和 多型Python繼承多型
- java繼承與多型Java繼承多型