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