The following sentence in the same paragraph says:
Classes intended for inheritance (clause 17) should rarely implement Serializable, and interfaces should rarely extend it. Violation of this rule imposes a significant burden on everyone who extends the class or implements the interface. There are times when you need to break the rule. For example, if a class or interface exists mainly to participate in a structure that requires all participants to implement Serializable, then for a class or interface it makes sense to implement or extend Serializable.
Since I don't want Josh to be on my tail to infringe on copyright (no matter how cool it is), I would not copy the whole element in this answer. Suffice it to say that the reasoning for this is explained in the rest of the subject.
EDIT: Josh listed a number of costs for implementing Serializable . If an interface / superclass implements it, the costs will be forcibly transferred to expanding classes.
The main cost of implementing Serializable is that it reduces the flexibility to change the implementation of classes after it has been released ....
...
The second cost of implementing Serializable is that it increases the likelihood of errors and security holes ....
The third cost of implementing Serializable is that it increases the test burden associated with the release of a new version of the class.
Ziyao wei
source share