Como posso serializar uma interface?

Suponha que eu tenha umSerializable classeShapeHolder que possui um objeto que implementa umSerializable Shape interface. Quero garantir que o objeto de forma concreta correto seja salvo (e o tipo correto seja restaurado posteriormente).

Como posso fazer isso?

interface Shape extends Serializable {} 

class Circle implements Shape { 
   private static final long serialVersionUID = -1306760703066967345L;
}

class ShapeHolder implements Serializable {
   private static final long serialVersionUID = 1952358793540268673L;
   public Shape shape;
}

questionAnswers(3)

yourAnswerToTheQuestion