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