java中繼承和賦給都是java中重要的知識(shí)點(diǎn),作為程序員,我們應(yīng)該了解它的含義以及它的使用方法,那java中繼承和賦給的區(qū)別是什么? 下面來(lái)我們就來(lái)給大家講解一下。
java繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類(lèi)。繼承就是子類(lèi)繼承父類(lèi)的特征和行為,使得子類(lèi)對(duì)象(實(shí)例)具有父類(lèi)的實(shí)例域和方法,或子類(lèi)從父類(lèi)繼承方法,使得子類(lèi)具有父類(lèi)相同的行為。
java賦值是用等號(hào)運(yùn)算符(=)進(jìn)行的。它的意思是“取得右邊的值,把它復(fù)制到左邊”。右邊的值可以是任何常數(shù)、變量或者表達(dá)式,只要能產(chǎn)生一個(gè)值就行。但左邊的值必須是一個(gè)明確的、已命名的變量。也就是說(shuō),它必須有一個(gè)物理性的空間來(lái)保存右邊的值。舉個(gè)例子來(lái)說(shuō),可將一個(gè)常數(shù)賦給一個(gè)變量(A=4;),但不可將任何東西賦給一個(gè)常數(shù)(比如不能4=A)。
對(duì)主數(shù)據(jù)類(lèi)型的賦值是非常直接的。由于主類(lèi)型容納了實(shí)際的值,而且并非指向一個(gè)對(duì)象的句柄,所以在為其賦值的時(shí)候,可將來(lái)自一個(gè)地方的內(nèi)容復(fù)制到另一個(gè)地方。例如,假設(shè)為主類(lèi)型使用“A=B”,那么B處的內(nèi)容就復(fù)制到A。若接著又修改了A,那么B根本不會(huì)受這種修改的影響。
JAVA繼承的初始化順序是什么?
1.初始化父類(lèi)再初始化子類(lèi);
2.先執(zhí)行初始化對(duì)象的屬性,再執(zhí)行構(gòu)造方法中的初始化;
以這段代碼為例,Animal 父類(lèi) Dog子類(lèi),Dog dog=new Dog();僅僅創(chuàng)建了子類(lèi)對(duì)象,但其父類(lèi)Animal子類(lèi)Dog的構(gòu)造方法都執(zhí)行了,會(huì)先執(zhí)行父類(lèi)的構(gòu)造方法,再創(chuàng)建子類(lèi)的對(duì)象。父類(lèi)對(duì)象——屬性初始化——構(gòu)造方法,然后子類(lèi)對(duì)象——屬性初始化——構(gòu)造方法。當(dāng)我們創(chuàng)建一個(gè)子類(lèi)對(duì)象時(shí),會(huì)先創(chuàng)建父類(lèi)對(duì)象的初始化,再初始化父類(lèi)的構(gòu)造方法,然后是子類(lèi)對(duì)象屬性初始化和構(gòu)造方法初始化。在這里我想強(qiáng)調(diào)的是:假如Test測(cè)試代碼中只new了一個(gè)子類(lèi)的對(duì)象,此時(shí)會(huì)先執(zhí)行父類(lèi)的對(duì)象初始化構(gòu)造方法,再執(zhí)行子類(lèi)的構(gòu)造方法。注意:
1.如果父類(lèi)是無(wú)參構(gòu)造方法時(shí),子類(lèi)也是的話可以省略,先父類(lèi)構(gòu)造再子類(lèi);
2.父類(lèi)僅一個(gè)有參構(gòu)造時(shí),子類(lèi)必然是有參構(gòu)造方法,不能重載。因?yàn)橹剌d子類(lèi)new對(duì)象時(shí)無(wú)參數(shù),父類(lèi)無(wú)參數(shù)的話就無(wú)法構(gòu)造;
3.解決辦法是父類(lèi)再添加一個(gè)無(wú)參構(gòu)造方法,此時(shí)子類(lèi)可以沒(méi)有有參方法,也可以在有參的方法后再寫(xiě)一個(gè)重載的無(wú)參構(gòu)造法。會(huì)根據(jù)有參無(wú)參選擇對(duì)應(yīng)的構(gòu)造方法。
在子類(lèi)繼承父類(lèi)的有參構(gòu)造函數(shù)時(shí),super(參數(shù)),是構(gòu)造函數(shù)中{}第一條語(yǔ)句,super代表父類(lèi),()代表調(diào)用父類(lèi)中的構(gòu)造函數(shù)。super();//有時(shí)候這句無(wú)參的構(gòu)造方法會(huì)被系統(tǒng)默認(rèn)隱藏掉,實(shí)際上是存在的,只是不顯示。super(參數(shù));這是有參構(gòu)造法;
最后大家需要知道Java的繼承是單繼承,但是可以多重繼承,java的繼承可以實(shí)現(xiàn)代碼復(fù)用;并且也提高了類(lèi)之間的耦合性。最后大家如果想要了解更多java初識(shí)知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“java中繼承和賦給的區(qū)別是什么??java繼承的初始化順序是什么?”已幫助 79 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579