title: Transient fields become null after deserialization?
body: <p>I'm currently using JAVA's built in serializer <code>java.io.Serializable</code> and can't seem to get it to deserialize and set my fields to their default values. I've even attempted to use <code>readObject</code> to initialize the fields but it just doesn't work. </p>
  
  <p>Here is my code:</p>
  
  <pre><code>public abstract class BossQuest implements Quest, 
              Listenable { //Quest(interface) extends Serializable
  
  private transient Status status = Status.IDLE; //This does not work
  
  private String name;
  
  public BossQuest(String name) {
      this.name = name;
      initialize();
  }
  
  //This also does not work
  public BossQuest() {
      this.status = Status.IDLE;
  }
  
  //This was my hacky attempt to forcefully set default values (Does not work)
  public void initialize() {
      status = Status.IDLE;
  }
  
  private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
      ois.defaultReadObject();
      initialize();
  }
  
  public Status getStatus() {
      System.out.print("Requesting status!");
  
      if (status == null) {
          System.out.print("Status is.. null..?"); 
      }
  
      System.out.print(status);
  
      return status;
  }
  }
  </code></pre>
  
  <p>In my code above, Quest extends Serializable    </p>
  
  <p>The ONLY time status is null is after I deserialize the file. It CANNOT be set to null through any of the mutators. </p>