如果超类中有默认的serialVersionUID,那么子类是否继承了serialVersionUID?类似于超类是可序列化的,那么子类也是可序列化的。
最初我有一个超类,没有默认的serialVersionUID,所以我得到了:
local class incompatible: stream classdesc serialVersionUID = -3473908186986930430,
local class serialVersionUID = -7527159820765531130所以我把这个添加到超类中:
private static final long serialVersionUID = 1L;我的问题是:在序列化子类时,序列化是否考虑来自超类的serialVersionUID。是否需要在每个子类中显式地指定serialVersionUID?
发布于 2014-05-05 05:54:13
如果超类中有默认的serialVersionUID,那么子类是否继承了serialVersionUID?
不,它不是继承的,因为它是私有的,而且在任何情况下,序列化都不会认为它属于子类而不使用它。
类似于超类是可序列化的,那么子类也是可序列化的。
这可不一样。Serializable是一个接口,它只受语言规则的约束。serialVersionUID是一个特殊的字段,它有自己的规则由ObjectInputStream.强制执行。
https://stackoverflow.com/questions/23465613
复制相似问题