Serializable is a tagging interface; it prescribes no methods. It serves to assign the Serializable data type to the tagged class and to identify the class as one which the developer has designed for persistence. ObjectOutputStream serializes only those objects which implement this interface.
You'll need to make sure that all of your member variables are also Serializable or use the "transient" keyword to indicate they can be skipped when serializing. You'll get a NotSerializableException if there is a non-serializable object anywhere in your object graph - your member variables and their member variables and so on.
You can extend a non-serializable class and make it serializable by doing custom serialization in writeObject and readObject methods.
Whew. Does it still sound worth doing?
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi