code: import java.io.*;
  
  // classes must implement java.io.Serializable in order to be serializable
  class Entity implements Serializable {
      // it is recommended to hard-code serialVersionUID so changes to class
      // will not invalidate previously serialized objects
      static final long serialVersionUID = 3504465751164822571L;
      String name = "Entity";
      public String toString() { return name; }
  }
  
  class Person extends Entity implements Serializable {
      static final long serialVersionUID = -9170445713373959735L;
      Person() { name = "Cletus"; }
  }
  
  public class SerializationTest {
      public static void main(String[] args) {
          Person instance1 = new Person();
          System.out.println(instance1);
  
          Entity instance2 = new Entity();
          System.out.println(instance2);
  
          // Serialize
          try {
              ObjectOutput out = new ObjectOutputStream(new FileOutputStream("objects.dat")); // open ObjectOutputStream
  
              out.writeObject(instance1); // serialize "instance1" and "instance2" to "out"
              out.writeObject(instance2);
              out.close();
              System.out.println("Serialized...");
          } catch (IOException e) {
              System.err.println("Something screwed up while serializing");
              e.printStackTrace();
              System.exit(1);
          }
  
          // Deserialize
          try {
              ObjectInput in = new ObjectInputStream(new FileInputStream("objects.dat")); // open ObjectInputStream
  
              Object readObject1 = in.readObject(); // read two objects from "in"
              Object readObject2 = in.readObject(); // you may want to cast them to the appropriate types
              in.close();
              System.out.println("Deserialized...");
  
              System.out.println(readObject1);
              System.out.println(readObject2);
          } catch (IOException e) {
              System.err.println("Something screwed up while deserializing");
              e.printStackTrace();
              System.exit(1);
          } catch (ClassNotFoundException e) {
              System.err.println("Unknown class for deserialized object");
              e.printStackTrace();
              System.exit(1);
          }
      }
  }
  