Note that superclass player is not serialized while subclass cardplayer is serialized.generally when deserializing the constructor doesnt run.But in this case,as the super class player does not implement serializable,the Objects state would not have been stored during serialization. So when deserializing the superclass constructor runs,and sets player to its initial state.