黑馬程式設計師 《物件導向 多型 03

2021-06-18 19:47:11 字數 2716 閱讀 7016

---------------------asp.net+android+ios開發、.net培訓、期待與您交流! --------------------

多型:某一類事物的多種存在形態

因為有的繼承,所以有了父類和子類關係,那麼就提現出來了多型的特性。

當一類事物之間肯定有存在某種關係,例如兒子和父親,學生和人,工人和人,那麼他們也有共性,那麼當我們劃分的越細,那麼子類就越多,那麼我們呼叫相同特性的時候,就會比較麻煩,那麼我們就使用父類來接受子類的物件,這樣就可以呼叫相同的特性方法。

例如:動物:狗,豬,兔子…等,他們都有吃的行為。

inte***ce animal 

public class dog implements animal

}public class pink implements animal }

public class duotaidemo

/*** 用父類來接受子類,那麼就可以呼叫子類和父類相同的方法

*/public static void animaleat(animal animal)

}結果:

狗吃骨頭

豬吃豬飼料

從結果可以看出,父類可以接受子類物件,相當於 animal animal=new dog();

結論:父類的引用指向了自己的子類物件。

父類的引用也可以接受自己的子類物件。

要想使用多型,那麼前提是:類與類之間必須有關係,存在覆蓋。

多型的好處:提高了程式的擴充套件性,也可以減少**。

多型的弊端:只能使用父類的引用訪問子類和父類共有的方法。

使用:可以使用父類物件作為引數接受子類物件。

向上轉型:子類型別轉換成父類型別。

向下轉型:強制把父類的引用轉換成子類型別。

instanceof:判斷是否是此型別 子類是有限的,或者是對某一特殊型別進行轉換。

也可以重寫基類的方法,然後把共有的方法封裝到乙個新的類中,這樣使用就更方便了。

inte***ce animal 

public class dog implements animal

/* 自獨有的方法 */

public void seedoor() }

public class pink implements animal

/* 自獨有的方法 */

public void dongdi() }

public class duotaidemo

/*** 用父類來接受子類,那麼就可以呼叫子類和父類相同的方法

*/public static void animaleat(animal animal) else if(animal instanceof pink)

}}結果;狗吃骨頭

看門豬吃豬飼料

豬,gongdi

多型中成員函式的特點:

在編譯時期:參閱引用型變數所屬的類中是否有呼叫的方法。如果有,編譯通過,如果沒有編譯失敗。

在執行時期:參閱物件所屬的類中是否有呼叫的方法,。

簡單總結就是:成員函式在多型呼叫時,編譯看左邊,執行看右邊。

當父類和子類相同的成員變數,或者有相同的靜態方法,那麼父類接受子類物件的時候,那麼呼叫相同的成員變數或者是相同的靜態方法,那麼就執行父類的,        因為,當父類和子類一載入的時候,那麼其都在記憶體中生成,所以當然會呼叫弗雷德。

如果不是靜態的方法那麼會呼叫子類重寫的方法。

public class fu 

public void print()

}public class zi extends fu

public void print()

public static void main(string agrs)

}結果:

父類的靜態的show()方法

5子類的非靜態的print()方法

模擬電腦的主機板和pci功能。主機板中封裝了pci,其他的網絡卡,音效卡都實現pci介面,不管是以後擴充套件什麼,那麼繼承pci就可以在主機板上上執行。

/*pci介面*/

inte***ce pci

/*主機板*/

class maincard

public void userpci(pci pci)

}}/* 網絡卡 */

class netcard implements pci

@override

public void open() }

/* 音效卡 */

class soundcard implements pci

@override

public void open() }

public class textdemo }

結果:main card run

netcard close

netcard open

soundcard close

soundcard open

---------------------

asp.net+android+ios開發、

.net培訓、期待與您交流! --------------------

黑馬程式設計師 物件導向 多型

asp.net unity開發 net培訓 期待與您交流!多型 可以理解為事物存在的多種體現形態。父類的引用指向子類的物件。1.多型的體現 父類的引用指向子類的物件,父類的引用接收子類的物件。2.多型的前提 類與類之間必須是繼承或者實現的關係。通常還有乙個前提 就是覆蓋 3.多型的好處 大大的提高了...

黑馬程式設計師 09物件導向 4 多型

asp.net android ios開發 net培訓 期待與您交流!多型 事物的多種體現形態 體現 父類引用指向自己的子類物件 fu f new zi f.方法 好處 極大提高程式的擴充套件性 前提 必須是類與類之間有關係,繼承 extends 或者是實現 implements 通常存在覆蓋,只能...

黑馬程式設計師 C 物件導向之多型

asp.net unity開發 net培訓 期待與您交流!把一組相關的物件放到乙個陣列或集合中,然後呼叫它們名字相同的方法,在這種情況下,物件導向的多型性就體現出來了,這些物件可以不是相同型別的物件。如果它們都繼承自某乙個類,可以把這些派生類的物件放到乙個陣列中。如果這些物件都有同名方法,也可以呼叫...