This explains that ctor B is not called again because it is serializable.
Reading an object is similar to starting the constructors of a new object. Memory is allocated for the object and initialized to zero (NULL). No-arg constructors are called for non-serializable classes.
A B new B(), ctor A, B.
objin.readObject() ctor A A.