天天看點

第三章 多态1.什麼是多态?2.多态性與繼承,方法重寫密切相關。3.子類到父類的轉換  (向上轉型)4.在引用資料類型的子類和父類之間也存在類型轉換,如下代碼:5.子類轉換成父類的規則:6.使用父類作為方法形參實作多态。7.使用父類作為方法傳回值實作多态。8.總結:  (實作多态的3個條件)

1.什麼是多态?

多态是具有表現多種形态的的能力特征。更專業的說法是:同一個實作接口使用不同的執行個體而執行不同的操作。

2.多态性與繼承,方法重寫密切相關。

3.子類到父類的轉換  (向上轉型)

//  将int型常量或變量的值賦給double型變量,可以自動進行類型轉換

int  i =5;

double  d1  =5;

// 将double 型常量或變量的值賦給 int型變量,進行強制類型轉換

double  d2 =3.14;

int  a=(int)d2;

4.在引用資料類型的子類和父類之間也存在類型轉換,如下代碼:

     Dog  dog= new Dog ("歐歐","雪納瑞");   //不涉及類型轉換

dog.eat();

Pet  pet = new Dog  ("歐歐","雪納瑞");  // 子類到父類的轉換

pet.eat();                                    // 會調用Dog類重寫的eat 方法,而不是pet類的eat() 方法

pet.catchingFlyDisc();            // 編譯錯誤, 父類的引用無法調用子類的特有方法。

5.子類轉換成父類的規則:

(1)将一個父類的引用指向一個子類的對象,稱為向上轉型(upcasting),自動進行類型轉型。

(2)此時通過父類引用變量調用的方法是子類覆寫或繼承父類的方法,不是父類的方法。

(3)此時通過父類引用變量無法調用子類特有的方法。

6.使用父類作為方法形參實作多态。

使用父類作為方法的形參,是Java中實作和使用多态的主要方式之一。

7.使用父類作為方法傳回值實作多态。

使用父類作為方法的傳回值,是Java中實作和使用多态的另一種方式。

8.總結:  (實作多态的3個條件)

        繼承的存在(繼承是多态的基礎,沒有繼承就沒有多态)。

 子類重寫父類的方法(多态下調用子類重寫後的方法)

 父類引用變量指向子類對象(子類到父類的轉換)。