@Kevin, OK I understand your point of view. So, in my opinion, it's just a matter of style:
If one of my sublcasses is serializable than I must ensure that I need to be serializable too.
One can state: "it's obvious!" and the other can state: "Ok, I've taken care of that, so I'll mark it explicitly as Serializable for clarity for future developers".
There are no implicit or explicit implementations of an interface in the JVM world, but in my opinion, there is such a thing in the developers world.
Kevin Kilbane wrote:
if one of your sublcasses implements the Serializable interface, it doesn't necesary mean that your class IS SERIALIZABLE.
Yes it does! If your class is not Serializable then your code is wrong. If you extend a class that implements Serializable then you need to make sure your class is Serializable (you can mark elements as transient if needs be). If you don't, your program is wrong.
Of course, the code is poorly written, but it doesn't change the fact that your class cannot be serializabled. I believe I specifically defined in the next sentence what I mean by 'is serializable'.