When a nonfinal class defines a clone() method that does not fails to call super.clone(), cloning a subtype will produce an object of the wrong type.
...
When a nonfinal class defines a clone() method that does not fails to call super.clone(), cloning a subtype will produce an object of the wrong type.
...