super/多態(tài)
Super 關(guān)鍵字
理解為:父類的
super可以用來調(diào)用:屬性、方法、構(gòu)造器
當(dāng)子類和父類中聲明了同名的屬性時,我們要想在子類中調(diào)用父類中聲明的屬性,則必須顯式地使用“super.屬性"的方式,表明調(diào)用的是父類中聲明的屬性
當(dāng)子類重寫了父類中的方法以后,我們要想在子類中調(diào)用父類中的方法,則必須顯式地使用“super.方法"的方式進(jìn)行調(diào)用。
super調(diào)用構(gòu)造器。必須聲明在首行。
若是父類的屬性是私有的,那么在子類中就不能直接去操作對應(yīng)的屬性進(jìn)行賦值,可以通過使用父類構(gòu)造器的方式來操作。
在構(gòu)造器的首行,沒有顯示的聲明“this(形參列表)” 或 “super(形參列表)” ,則默認(rèn)調(diào)用的是父類中的空參構(gòu)造器。
在類的多個構(gòu)造器中,至少有一個類的構(gòu)造器中使用了 “super(形參列表)”,調(diào)用父類中的構(gòu)造器;【this是n-1個】;
子類對象實例化的全過程
從結(jié)果上來看:(繼承性)
子類創(chuàng)建父類以后,就獲取了父類中聲明的屬性或方法
創(chuàng)建子類的對象,在堆空間中,就會加載所有父類中聲明的屬性。
從過程上來看
當(dāng)我們通過子類的構(gòu)造器創(chuàng)建子類對象時,我們一定會直接或間接的調(diào)用其父類的構(gòu)造器,進(jìn)而調(diào)用父類的父類的構(gòu)造器,直到調(diào)用到了Object類中的空參構(gòu)造器為止。正因為加載過所有的父類的結(jié)構(gòu),所以才可以看到內(nèi)存中有父類的結(jié)構(gòu),子類對象才可以考慮進(jìn)行調(diào)用。
明確:雖然創(chuàng)建子類對象時,調(diào)用了父類的構(gòu)造器,但是自始至終就創(chuàng)建過一個對象,即為new的子類對象
多態(tài)
一個事務(wù)的多種形態(tài)。
何為多態(tài)性?
父類的引用指向子類的對象
多態(tài)的使用: 多態(tài)是運(yùn)行時行為
當(dāng)調(diào)用子父類同名同參數(shù)的方法時,實際執(zhí)行的是子類重寫父類的方法
?虛擬方法調(diào)用:有了對象的多態(tài)性以后,我們在編譯期,只能調(diào)用父類中聲明的方法,但在運(yùn)行期,我們實際執(zhí)行的是子類重寫父類的方法;
總結(jié):【編譯看左邊,運(yùn)行看右邊】
使用前提:1. 類的繼承關(guān)系 2. 方法的重寫
只使用于方法,不使用于屬性(編譯和運(yùn)行都看左邊)
有了對象的多態(tài)性以后,內(nèi)存中實際上是加載了子類特有的屬性和方法的,但是由于變量聲明為父類類型,導(dǎo)致編譯時,只能調(diào)用父類中聲明的屬性和方法。子類特有的屬性和方法不能調(diào)用。
方法的重載與重寫

instance of
a instanceof A : 左邊是對象,右邊是類;當(dāng)對象是右邊類或子類所創(chuàng)建的對象時,返回true;否則,返回false;
功能少的不能強(qiáng)轉(zhuǎn)成功能多的
可變形參問題:確定個數(shù)的執(zhí)行優(yōu)于可變形參的執(zhí)行
equals
==運(yùn)算符
可以使用在基本數(shù)據(jù)類型變量和引用數(shù)據(jù)類型變量中
如果比較的是基本數(shù)據(jù)類型變量:比較兩個變量保存的數(shù)據(jù)是否相等。(不一定要類型相同);如果比較的是引用數(shù)據(jù)類型變量:比較兩個對象的地址值是否相同。
equals()
Object類中equals()的定義跟==是相同的;
像String、Date、File、包裝類等都重寫了Object類中的equals()方法。重寫以后,比較的不是兩個引用的地址是否相同,而是比較具體的內(nèi)容。
public boolean equals(Object obj) { ? ?
????return (this==obj);
}
三元運(yùn)算會自動提升類型
Interger 內(nèi)部定義了 InetrgerCache結(jié)構(gòu),IntegerCache 中定義了Integer[],保存了從-128~127 范圍的整數(shù),如果我們使用自動裝箱的方式,給Integer賦值的范圍在-128~127范圍內(nèi)時,可以直接使用數(shù)組中的元素,不用再去new了??梢蕴岣咝?/span>