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