[英]Hierarchy of classes in serialization and deserialization
我有一個類層次結構,如下所示:
public class A implements Serializable {}
public class B extends A {}
public class C implements Serializable extends B {}
public class D extends C {}
我的判斷正確嗎?
序列化類D
,將層次結構中的所有類都序列化,因為子類已序列化。
當反序列化類D
,不需要默認構造函數,並且整個層次結構都將反序列化。
你是對的。 由於頂級類A
實現Serializable
,並且類從其超類繼承接口,因此您所有的類都是可序列化的。 不需要默認構造函數,因為所有類都可以通過序列化指示可以通過從流中讀取其狀態來安全地重構它們。
在序列化類D流程中,所有層次結構都已序列化,因為子類已序列化。
不,因為基類A
是Serializable
,所以它們都已序列Serializable
。
在反序列化類D流程中,不需要任何無參數的構造函數,並且所有層次結構都將反序列化。
正確。 最接近的A
不可序列化基類將需要一個無參數的構造函數,但在這種情況下,它是java.lang.Object
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.