Invoking overridable methods from the readObject()
method can cause the overriding method to read the state of the subclass before it is fixed. This is because the base class is deserialized first, followed by the subclass. Also see the related guidelines CON04-J. Do not call overridable methods from synchronized regions and MET38MET07-J. Do not invoke overridable methods on the clone under construction.
...