Прочитал 4-5 статей про Serializable, основные детали понял, но есть тонкости, которые не могу освоить. В задаче для сериализации и десериализации используются методы readObject() и writeObject(b). Для того чтобы записать переменную НЕсериализируемого класса родителя А, нужно "расширить" функционал сериализации, я так понял, и для этой цели, нужно создать два private метода writeObject(out) и readObject(in). Моменты которые я не понял: 1. Первый вызов метода идет out.defaultWriteObject/in.defaultReadObject(), а после идет запись переменной, класс которого no serializable. Объясните пожалуйста, каким образом все записывается правильно, если порядок записи неупорядоченный? 2. Если в задаче не используются два private метода writeObject(out) и readObject(in), как класс правильно все компилирует?