為什么沒有實(shí)現(xiàn)Serializable的父類的構(gòu)造函數(shù),就會(huì)在反序列化子類的過程中被調(diào)用
更想知道的是為什么沒有實(shí)現(xiàn)Serializable的父類Bar,在反序列化的過程中,構(gòu)造函數(shù)會(huì)被調(diào)用。而不是僅僅知道這個(gè)現(xiàn)象。
更想知道的是為什么沒有實(shí)現(xiàn)Serializable的父類Bar,在反序列化的過程中,構(gòu)造函數(shù)會(huì)被調(diào)用。而不是僅僅知道這個(gè)現(xiàn)象。
2016-07-02
舉報(bào)
2016-07-07
我說一下我的理解吧:說之前首先要說一下概念,序列化就是將對(duì)象轉(zhuǎn)換為字節(jié)序列,通俗點(diǎn)就是講創(chuàng)建出來的對(duì)象狀態(tài)保存起來(構(gòu)造函數(shù)初始化之后的)
父類如果沒有實(shí)現(xiàn)序列接口,而子類實(shí)現(xiàn)序列接口,那么父類對(duì)象就不會(huì)被序列化,也就不會(huì)被保存,而子類卻可以被序列化,即保存
Java中構(gòu)造一個(gè)對(duì)象,首先得先構(gòu)造父類對(duì)象,才會(huì)構(gòu)造子類對(duì)象,所以在反序列化子類時(shí),就會(huì)調(diào)用父類構(gòu)造方法來作為默認(rèn)的父類對(duì)象,而子類因?yàn)橐呀?jīng)被序列化了(已經(jīng)調(diào)用過子類構(gòu)造方法的狀態(tài)),所以就不會(huì)再調(diào)用子類自己的構(gòu)造方法
2016-07-04
序列化是什么意思,你只要知道了這個(gè)你就會(huì)知道問題的答案,我建議你自己研究,這樣記憶會(huì)更深刻,我提一下就是子類實(shí)現(xiàn)的時(shí)候會(huì)調(diào)用父類的構(gòu)造函數(shù),這個(gè)是基礎(chǔ)理論,知道了這個(gè),序列化也不難理解了