Класс, который необходимо сохранить в файле или другом носителе, должен реализовывать интерфейс Serializable, чтобы JVM могла позволить сериализацию объекта класса. Почему класс Object не сериализуется, тогда ни один из классов не должен реализовывать интерфейс, ведь JVM сериализует класс только тогда, когда я использую ObjectOutputStream, что означает, что элемент управления все еще находится в моих руках, чтобы позволить JVM сериализоваться.
Причина, по которой класс Object не может быть сериализован по умолчанию, заключается в том, что версия класса является основной проблемой. Поэтому каждый класс, который заинтересован в сериализации, должен быть явно помечен как Serializable и предоставить номер версии serialVersionUID.
Если serialVersionUID не указан, мы получаем неожиданные результаты при десериализации объекта, поэтому JVM выдает исключение InvalidClassException, если serialVersionUID не совпадает. Поэтому каждый класс должен реализовать интерфейс Serializable и предоставить serialVersionUID, чтобы убедиться, что класс, представленный на обоих концах, идентичен.