千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

多態(tài)性
1.理解多態(tài)性:可以理解為一個(gè)事物的多種形態(tài)。
2.何為多態(tài)性:
概念:父類引用指向子類對(duì)象,從而產(chǎn)生多種形態(tài)。
二者具有直接或間接的繼承關(guān)系時(shí),父類引用可指向子類對(duì)象,即形成多態(tài)。
父類引用僅可調(diào)用父類所聲明的屬性和方法,不可調(diào)用子類獨(dú)有的屬性和方法。
3.多態(tài)的使用:
有了對(duì)象的多態(tài)性以后,我們?cè)诰幾g期,只能調(diào)用父類中聲明的方法,但在運(yùn)行期,我們實(shí)際執(zhí)行的是子類重寫父類的方法。(一個(gè)對(duì)象能調(diào)用什么方法看這個(gè)對(duì)象的定義類型,一個(gè)對(duì)象會(huì)執(zhí)行什么方法看這個(gè)對(duì)象的實(shí)際類型。)
總結(jié):編譯,看左邊;運(yùn)行,看右邊。(調(diào)用看左邊 執(zhí)行看右邊)
4.多態(tài)性的使用前提:
① 類的繼承關(guān)系 ② 方法的重寫
5.多態(tài)性使用的注意點(diǎn):
對(duì)象的多態(tài)性,只適用于方法,不適用于屬性,屬性沒有多態(tài)(編譯和運(yùn)行都看左邊)
6.關(guān)于向上轉(zhuǎn)型與向下轉(zhuǎn)型:
(1)向上轉(zhuǎn)型:多態(tài)
(2)向下轉(zhuǎn)型:
為什么使用向下轉(zhuǎn)型(父類類型調(diào)用不到子類獨(dú)有的方法):
有了對(duì)象的多態(tài)性以后,內(nèi)存中實(shí)際上是加載了子類特有的屬性和方法的,但是由于變量聲明為父類類型,導(dǎo)致編譯時(shí),只能調(diào)用父類中聲明的屬性和方法。子類特有的屬性和方法不能調(diào)用。如何才能調(diào)用子類特的屬性和方法?使用向下轉(zhuǎn)型。
如何實(shí)現(xiàn)向下轉(zhuǎn)型:
使用強(qiáng)制類型轉(zhuǎn)換符:()
使用時(shí)的注意點(diǎn):
① 使用強(qiáng)轉(zhuǎn)時(shí),可能出現(xiàn)ClassCastException的異常。
② 為了避免在向下轉(zhuǎn)型時(shí)出現(xiàn)ClassCastException的異常,我們?cè)谙蛳罗D(zhuǎn)型之前,先進(jìn)行instanceof的判斷,一旦返回true,就進(jìn)行向下轉(zhuǎn)型。如果返回false,不進(jìn)行向下轉(zhuǎn)型。
instanceof的使用:
① a instanceof A:判斷對(duì)象a是否是類A的實(shí)例。如果是,返回true;如果不是,返回false。
② 如果 a instanceof A返回true,則 a instanceof B也返回true.其中,類B是類A的父類。