title: Why doesn't java.util.List implement Serializable?
body: <p>Why is it that <code>java.util.List</code> does not implement <code>Serializable</code> while subclasses like <code>LinkedList</code>, <code>Arraylist</code> do?  Does not it seem to be against inheritance principles?  For example if we want to send a Linkedlist over a network, we have to write:</p>
  
  <pre><code>new ObjectOutputStream(some inputStream).writeObject(some LinkedList);
  </code></pre>
  
  <p>So far so good, but while reading the object on the other side we have to explicity say <code>LinkedList l = (LinkedList)objectInputStream.readObject();</code> instead of <code>List l = (List)objectInputStream.readObject();</code>.  If we were ever to change the writing functionality from <code>LinkedList</code> to say <code>ArrayList</code>, we will also have to change the reading part.  Having <code>List</code> implement <code>Serializable</code> would have solved the problem.</p>