在 Java 中,“超类是否可序列化”取决于该超类本身是否实现了 java.io.Serializable 接口,而不是由子类决定的。
如果超类实现了 Serializable
Serializable)如果超类没有实现 Serializable
Serializable,超类部分不会序列化InvalidClassException)class Parent implements Serializable {
int a;
}
class Child extends Parent implements Serializable {
int b;
}
✅ Child 对象可完整序列化(包括 a 和 b)
class Parent {
int a;
Parent() {} // 必须有无参构造器
}
class Child extends Parent implements Serializable {
int b;
}
✅ Child 可序列化
⚠️ 但 a 不会被序列化,反序列化时通过 Parent() 恢复默认值
Serializable 会编译通过Java 超类本身可以序列化,也可以不序列化;是否可序列化只看它是否实现
Serializable。
如果你愿意,我可以补充:
transient 在继承中的行为writeObject/readObject 与超类字段免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。