亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么沒有實現Serializable的父類的構造函數,就會在反序列化子類的過程中被調用

更想知道的是為什么沒有實現Serializable的父類Bar,在反序列化的過程中,構造函數會被調用。而不是僅僅知道這個現象。

正在回答

2 回答

我說一下我的理解吧:說之前首先要說一下概念,序列化就是將對象轉換為字節序列,通俗點就是講創建出來的對象狀態保存起來(構造函數初始化之后的)

  1. 父類如果沒有實現序列接口,而子類實現序列接口,那么父類對象就不會被序列化,也就不會被保存,而子類卻可以被序列化,即保存

  2. Java中構造一個對象,首先得先構造父類對象,才會構造子類對象,所以在反序列化子類時,就會調用父類構造方法來作為默認的父類對象,而子類因為已經被序列化了(已經調用過子類構造方法的狀態),所以就不會再調用子類自己的構造方法

4 回復 有任何疑惑可以回復我~
#1

bigfire 提問者

非常感謝!
2016-07-09 回復 有任何疑惑可以回復我~
#2

qq_我有我的范兒_0 回復 bigfire 提問者

不客氣,對于這個問題我剛開始也不明白,也是查了不少資料才弄明白,給你講一遍當做復習了,一起努力吧
2016-07-10 回復 有任何疑惑可以回復我~

序列化是什么意思,你只要知道了這個你就會知道問題的答案,我建議你自己研究,這樣記憶會更深刻,我提一下就是子類實現的時候會調用父類的構造函數,這個是基礎理論,知道了這個,序列化也不難理解了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么沒有實現Serializable的父類的構造函數,就會在反序列化子類的過程中被調用

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號