Почему java.util.List не реализует Serializable, а подклассы типа LinkedList, Arraylist do? Разве это не похоже на принципы наследования? Например, если мы хотим отправить Linkedlist по сети, мы должны написать:
new ObjectOutputStream(some inputStream).writeObject(some LinkedList);
Пока все хорошо, но, читая объект с другой стороны, мы должны объяснить, что LinkedList l = (LinkedList)objectInputStream.readObject(); вместо List l = (List)objectInputStream.readObject();. Если бы мы когда-либо меняли функциональность записи от LinkedList, чтобы сказать Arraylist, нам также придется изменить часть чтения. Реализация Serializable реализации List могла бы решить проблему.