Serializable is an interface. All the compiler does is to check that the class implements all methods declared in that interface. Since there are none, every class passes this
test.
Using Serializable is more like a promise by you -the author of the class- that the class is actually serializable, i.e. that it doesn't contain references to objects that can't be serialized.
(Besides, the class could have a reference of type "Object", which could point to anything - the compiler wouldn't know what to do about that.)