java - 序列化和反序列化中类的层次结构

标签 java serialization 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,并且类从它们的父类(super class)继承了接口(interface),所以您的所有类都是可序列化的。不需要默认构造函数,因为所有类都表明,通过可序列化,可以通过从流中读取它们的状态来安全地重构它们。

关于java - 序列化和反序列化中类的层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37382672/

相关文章:

serialization - 相当于 Julia 的泡菜

java - Gson接口(interface)的通用集合

java - jackson JSON 库 : how to instantiate a class that contains abstract fields

java - 如何创建log4j文件并运行程序

java - 如何在不复制代码的情况下在不同的 Activity 中做出相同的事情

java - 将事件添加到 "Material-Calendar-View"插件的日历时出现问题

c - 如何将动态分配的结构写入文件

java - 如何在paint()方法之外的小程序中打印

unity3d - Unity 不序列化 int? field

serialization - 高性能实体序列化: BSON vs MessagePack (vs JSON)