亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

java - 請問下,這里為何會引發(fā)空指針異常?

瀏覽:106日期:2024-01-25 16:13:38

問題描述

java - 請問下,這里為何會引發(fā)空指針異常?

有人跟我講,將name進(jìn)行靜態(tài)賦值即可,但實(shí)例變量不也是屬于成員變量嗎,也是在整個類實(shí)例化的時候產(chǎn)生的啊,跟靜態(tài)賦值有何區(qū)別嗎?

問題解答

回答1:

父類的構(gòu)造方法先于子類構(gòu)造方法執(zhí)行,Base()->test()-->name.length()相當(dāng)于null.length()。將name寫成靜態(tài)的話,當(dāng)然可以了,因?yàn)殪o態(tài)成員的初始化先于實(shí)例成員的初始化。

順序大概是這樣的:

父類static{...}

父類靜態(tài)成員

父類構(gòu)造方法

子類static{...}

子類靜態(tài)成員

子類構(gòu)造方法

回答2:

首先拋出一個概念,對象的初始化流程:靜態(tài)變量 > 靜態(tài)初始化塊 > 實(shí)例變量 > 構(gòu)造器而存在父子類關(guān)系的對象,又存在一個嵌套的初始化流程父類初始化流程 > 子類初始化流程

所以在你實(shí)例化的過程中,調(diào)用父類構(gòu)造器并調(diào)用test()方法時,子類的name還沒有賦值,仍然是null,自然就會報(bào)空指針。

回答3:

你把name放在父類Base中定義就不會報(bào)錯。 因?yàn)槟銓?shí)例化Sub時,會調(diào)用默認(rèn)的構(gòu)造函數(shù),默認(rèn)的構(gòu)造函數(shù)會調(diào)用父類的構(gòu)造函數(shù),在父類的構(gòu)造函數(shù)中,你使用了test()方法,而你在子類中重寫了該方法,子類的test方法內(nèi)使用了name,但是這時候name還沒有完成初始化。所以會報(bào)NullPointerException。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 欧美黄a | 男女在线观看视频 | 日韩欧美亚洲每的更新在线 | 久久久久综合给合狠狠狠 | 久9青青cao精品视频在线 | 国产亚洲精品美女一区二区 | 两性午夜视频 | 亚洲国产精品综合久久久 | 香港av三级 | 日本高清视频一区二区 | 国产一区二区三区久久小说 | 真实国产精品视频国产网 | 亚洲国产成人综合 | 国内国产真实露脸对白 | 91精品国产色综合久久不 | 欧洲freexxxx性 | 欧美日本在线视频 | 亚洲精品m在线观看 | 亚洲日本一区二区三区 | 这里只有精品国产 | 欧美黄视频 | 国产成人福利美女观看视频 | 久久国产精品影院 | 美女黄视频在线观看 | 男人天堂手机在线 | 日韩精品午夜视频一区二区三区 | 亚洲欧美视频 | 日本高清色本免费现在观看 | 偷拍自拍第一页 | 国产日韩精品一区在线不卡 | 天堂最新版| 国产特黄特色一级特色大片 | 国产精品高清在线观看地址 | 免费一级毛片女人图片 | 67194成人在线观看 | 欧美日韩精品一区二区三区不卡 | 国产亚洲午夜精品a一区二区 | 国产中文字幕在线播放 | 欧美日韩亚洲另类 | 欧美高清另类自拍视频在线看 | jyzzjyzz国产免费观看 |