這篇文章給大家介紹java構(gòu)造器的執(zhí)行順序是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
成都創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、做網(wǎng)站、鉛山網(wǎng)絡(luò)推廣、成都微信小程序、鉛山網(wǎng)絡(luò)營(yíng)銷(xiāo)、鉛山企業(yè)策劃、鉛山品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供鉛山建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):028-86922220,官方網(wǎng)址:chinadenli.net
1,在沒(méi)有靜態(tài)塊的情況下,子類(lèi)的對(duì)象創(chuàng)建時(shí),父類(lèi)的無(wú)參構(gòu)造器-->子類(lèi)的構(gòu)造器(產(chǎn)生對(duì)象的構(gòu)造器,如果
是無(wú)參則執(zhí)行的是無(wú)參構(gòu)造器,如果執(zhí)行的是有參則執(zhí)行的有參構(gòu)造器)
現(xiàn)在的父類(lèi)中只有兩個(gè)構(gòu)造器:
Father.java Father { public Father(){ System.out.println("我是父類(lèi)的無(wú)參構(gòu)造器"); } public Father(String username){ System.out.println("我是父類(lèi)有參構(gòu)造器,傳過(guò)來(lái)的參數(shù)是+"+username); } public class SonDemo extends Father{ public SonDemo(){ System.out.println("我是--子類(lèi)--的無(wú)參構(gòu)造器"); } public SonDemo(String username){ System.out.println("我是子類(lèi)的有參構(gòu)造器,參數(shù)是"+username); } public void sys(){ System.out.println("我是子類(lèi)的sys方法"); } public static void main(String[] args) { //里面的內(nèi)容在下面有說(shuō)明 } }
①,子類(lèi)使用無(wú)參構(gòu)造器創(chuàng)建對(duì)象:
在SonDemo 的main方法中加入創(chuàng)建對(duì)象的代碼:
SonDemo son = new SonDemo(); }
我是父類(lèi)的無(wú)參構(gòu)造器
我是--子類(lèi)--的無(wú)參構(gòu)造器
②,子類(lèi)使用有參構(gòu)造器創(chuàng)建對(duì)象:
SonDemo的main方法中加入
SonDemo son = new SonDemo("than you ma");
那么控制臺(tái)打印的結(jié)果是:
我是父類(lèi)的無(wú)參構(gòu)造器
我是子類(lèi)的有參構(gòu)造器,參數(shù)是than you ma
也就是說(shuō)在子類(lèi)調(diào)用無(wú)參構(gòu)造器創(chuàng)建對(duì)象的時(shí)候,在執(zhí)行它自己的有參構(gòu)造器之前首先執(zhí)行父類(lèi)的無(wú)參構(gòu)造器。
③,在子類(lèi)中創(chuàng)建父類(lèi)的對(duì)象,使用無(wú)參,
SonDemo son = new SonDemo("than you ma"); Father ff = new Father();
SonDemo的main方法中加入
我是父類(lèi)的無(wú)參構(gòu)造器
我是--子類(lèi)--的無(wú)參構(gòu)造器
我是父類(lèi)的無(wú)參構(gòu)造器
調(diào)用了父類(lèi)的無(wú)參構(gòu)造器,有參的創(chuàng)建對(duì)象調(diào)用的是有參構(gòu)造器。
總結(jié):在創(chuàng)建子類(lèi)對(duì)象的時(shí)候,首先會(huì)調(diào)用父類(lèi)的構(gòu)造器,讓后在調(diào)用子類(lèi)相應(yīng)的構(gòu)造器創(chuàng)建對(duì)象,在子類(lèi)創(chuàng)建父類(lèi)對(duì)象時(shí),就是直接調(diào)用父類(lèi)自己相應(yīng)的構(gòu)造器。
2.如果在子類(lèi)和父類(lèi)中存在靜態(tài)塊;執(zhí)行順序有會(huì)是怎么樣的了?
答,靜態(tài)塊會(huì)在構(gòu)造器之前運(yùn)行。不管是子類(lèi)還是父類(lèi)。創(chuàng)建一個(gè)對(duì)象的時(shí)候,會(huì)首先加載它的靜態(tài)塊。
Father.java public class Father { //靜態(tài)塊 static{ System.out.println("father static "); } public Father(){ System.out.println("我是父類(lèi)的無(wú)參構(gòu)造器"); } public Father(String username){ System.out.println("我是父類(lèi)有參構(gòu)造器,傳過(guò)來(lái)的參數(shù)是+"+username); } } SonDemo.java public class SonDemo extends Father{ //靜態(tài)塊 static{ System.out.println("sonDemo static "); } public SonDemo(){ System.out.println("我是--子類(lèi)--的無(wú)參構(gòu)造器"); } public SonDemo(String username){ System.out.println("我是子類(lèi)的有參構(gòu)造器,參數(shù)是"+username); } public void sys(){ System.out.println("我是子類(lèi)的sys方法"); } public static void main(String[] args) { SonDemo son = new SonDemo(); } }
①程序的結(jié)果:
father static sonDemo static 我是父類(lèi)的無(wú)參構(gòu)造器 我是--子類(lèi)--的無(wú)參構(gòu)造器
因?yàn)樵趧?chuàng)建子類(lèi)對(duì)象之前:會(huì)創(chuàng)建父類(lèi)的一個(gè)對(duì)象,而靜態(tài)塊會(huì)在main之前被加載,所以?xún)蓚€(gè)類(lèi)的靜態(tài)塊首先執(zhí)行。
然后執(zhí)行構(gòu)造器。
②,如果在子類(lèi)中的main中只創(chuàng)建父類(lèi)的對(duì)象結(jié)果是怎么樣的呢?
打印結(jié)果:
father static sonDemo static 我是父類(lèi)的無(wú)參構(gòu)造器
為什么子類(lèi)的靜態(tài)塊會(huì)被加載了?是因?yàn)槲覀兪窃赟onDemo中測(cè)試,如果在其他類(lèi)中測(cè)試就不會(huì)打印。
總結(jié):我們說(shuō)了這么多就是重要的一點(diǎn)。靜態(tài)塊會(huì)在構(gòu)造器器之前執(zhí)行。
關(guān)于java構(gòu)造器的執(zhí)行順序是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
本文題目:java構(gòu)造器的執(zhí)行順序是什么
網(wǎng)頁(yè)地址:http://chinadenli.net/article6/ihciog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)頁(yè)設(shè)計(jì)公司、企業(yè)建站、標(biāo)簽優(yōu)化、虛擬主機(jī)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容