The rules governing this are subtle, and have been discussed in this forum many times before; use our
Search function to search for "clone" in this forum and you'll find full explanations.
But in any case, to make clone() work for a class, that class has to do two things:
1) Override clone to call super.clone(); and
2) Implement the (empty) Cloneable interface.
Therefore, the minimal class on which you can actually call clone() looks like this:
As I said, why this is has been explained here many times before.