Serialversionuid наследуется подклассами, если у меня есть serialVersionUID по умолчанию в суперклассе [закрыто]

Is serialVersionUID наследуется подклассами, если у меня есть default serialVersionUID в суперклассе? Подобно тому, когда суперкласс сериализуем, подклассы также сериализуемы.

у меня был суперкласс изначально без default serialVersionUID Так я получал:

local class incompatible: stream classdesc serialVersionUID = -3473908186986930430, 
local class serialVersionUID = -7527159820765531130

поэтому я добавил Это к суперклассу:

private static final long serialVersionUID = 1L;

мой вопрос: рассматривает ли сериализация serialVersionUID из суперкласса при сериализации подклассов или нет. Нужно ли указывать serialVersionUID in каждый подкласс явно?

1 ответов


наследуется ли serialVersionUID подклассами, если у меня есть serialVersionUID по умолчанию в суперклассе?

Да, он наследуется, но нет, сериализация не будет рассматривать его как принадлежащий подклассу и не использовать его.

подобно тому, когда суперкласс сериализуем, подклассы также сериализуемы.

это не похоже. Serializable является интерфейсом и подчиняется только правилам языка. serialVersionUID это специальное поле со своими правилами, применяемыми ObjectInputStream.