java.util.List
没有实现Serializable
接口,而像LinkedList
、ArrayList
这样的子类却实现了呢?这不是违反了继承原则吗?例如,如果我们想要在网络上发送一个Linkedlist,我们必须编写以下代码:new ObjectOutputStream(some inputStream).writeObject(some LinkedList);
目前为止一切都很好,但是在读取另一端的对象时,我们必须明确指定 LinkedList l = (LinkedList)objectInputStream.readObject();
而不是 List l = (List)objectInputStream.readObject();
。如果我们将写入功能从 LinkedList
更改为 ArrayList
,则还必须更改读取部分。让 List
实现 Serializable
将解决这个问题。