我有一个类层次结构如下:
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
,并且类从它们的父类(super class)继承了接口(interface),所以您的所有类都是可序列化的。不需要默认构造函数,因为所有类都表明,通过可序列化,可以通过从流中读取它们的状态来安全地重构它们。
关于java - 序列化和反序列化中类的层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37382672/