О readObject()/writeObject()
является приватным, вот сделка: если ваш класс Bar расширяет некоторый класс Foo; Foo также реализует readObject()/writeObject()
, а Bar также реализует readObject()/writeObject()
.
Теперь, когда объект Bar сериализуется или десериализуется, JVM необходимо автоматически вызвать readObject()/writeObject()
для Foo и Bar (т.е. без необходимости для вызова этих методов суперкласса). Однако, если эти методы не являются частными, он становится переопределяющим методом, и JVM больше не может вызывать методы суперкласса для объекта подкласса.
Следовательно, они должны быть частными!