首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果超类中有默认的serialVersionUID,则子类是否继承serialVersionUID?

如果超类中有默认的serialVersionUID,则子类是否继承serialVersionUID?
EN

Stack Overflow用户
提问于 2014-05-05 05:47:26
回答 1查看 4.3K关注 0票数 8

如果超类中有默认的serialVersionUID,那么子类是否继承了serialVersionUID?类似于超类是可序列化的,那么子类也是可序列化的。

最初我有一个超类,没有默认的serialVersionUID,所以我得到了:

代码语言:javascript
复制
local class incompatible: stream classdesc serialVersionUID = -3473908186986930430, 
local class serialVersionUID = -7527159820765531130

所以我把这个添加到超类中:

代码语言:javascript
复制
private static final long serialVersionUID = 1L;

我的问题是:在序列化子类时,序列化是否考虑来自超类的serialVersionUID。是否需要在每个子类中显式地指定serialVersionUID

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-05 05:54:13

如果超类中有默认的serialVersionUID,那么子类是否继承了serialVersionUID?

不,它不是继承的,因为它是私有的,而且在任何情况下,序列化都不会认为它属于子类而不使用它。

类似于超类是可序列化的,那么子类也是可序列化的。

这可不一样。Serializable是一个接口,它只受语言规则的约束。serialVersionUID是一个特殊的字段,它有自己的规则由ObjectInputStream.强制执行。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23465613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档