Originally posted by Rahul Bhattacharjee:
Why is has been done in that way I do not know
Surely, it's to make the feature reasonably object-oriented (OO).
Say you have class A that is Serializable, and class B that is a subclass of A. Good OO practice requires that you can treat an object of class B as an object of class A. Class B can have additional features, or override some of class A's features, but should not omit any of class B's features. So, if A is Serializable, then class B should be, too.