運行結果證明了這種方法是正確的。在此處我們用到了writeObject/ readObject方法,這對方法如果存在的話,序列化時就會被調用,以代替默認的行為(以後還要探討,先了解這麼多)。我們在序列化時,首先調用了ObjectOutputStream的defaultWriteObject,它使用默認的序列化行為,然後序列化父類的域;反序列化的時候也一樣。
歸納一下:
目的 行為
為一個實現Serializable接口的父類,編寫一個能夠序列化的子類 子類將自動的實現序列化
為一個沒有實現Serializable接口的父類,編寫一個能夠序列化的子類 1, 父類要有一個無參的constructor;2, 子類要先序列化自身,然後子類要負責序列化父類的域