public class Employee2 extends Employee1 {}
public class Employee1 extends Employee0 {}
public class Employee0 {}
现在我序列化 Employee2 类和
get the error java.io.NotSerializableException: Employee2
现在,如果将员工 1 类 def 更改为
public class Employee1 extends Employee0 implements java.io.Serializable {}
它工作正常,但请注意 Employee0 仍然没有实现可序列化
基类是否必须实现可序列化才能序列化子类?如果是,为什么它只对员工 1 是强制性的,而不是对员工 0 的强制性?
根据我的例子,它看起来像是的,但根据网络上的其他文章,这不应该是强制性的。那么我在这里错过了什么?
如果要序列化Employee2
对象,Employee2
必须实现Serializable
(最好是直接实现而不是继承它(。您没有收到异常Employee1
因为它不可序列化,您得到它是因为Employee2
不可序列化,并且您无论如何都尝试序列化它。
Employee1
和Employee0
不一定必须实现Serializable
,但如果它们不这样做,它们必须具有无参数构造函数(以便序列化器可以实例化重建的Employee2
对象(。