here's something to note: if you take a look at the source for Cloneable (note the misspelling---it should really be Clonable) you see this: public interface Cloneable { } yes, it's empty. when you declare a class and put "implements Cloneable" after the class name, there's nothing to implement---well, 'cept the semantics of what the interface represents. This sort of interface ...