During deserialization the accessible default constructor is called for the first class in the inheritance hierarchy that does not implement Serializable.
> A Serializable class must have access to the no-arg constructor of its first nonserializable superclass