Clone是“克隆”的意思,即制作完全一模一样的副本,这个方法在基础类Object中定义成“protected”(受保护)模式。但在希望克隆的任何衍生类中,必须将其覆盖为“public”模式。所以你要想在Image对象中实现克隆,就必须自己重写Image类,让新类从Image继承过来,重写一下基础类的Clone方法,就可以了。例如,标准库类Vector覆盖了clone(),所以能为Vector调用clone(),他的部分源代码如下:
 public class Vector extends AbstractList implements List, Cloneable,
            java.io.Serializable 
{
   ...............   /**
     * Returns a clone of this vector. The copy will contain a
     * reference to a clone of the internal data array, not a reference 
     * to the original internal data array of this <tt>Vector</tt> object. 
     *
     * @return  a clone of this vector.
     */
    public synchronized Object clone() {
try { 
    Vector v = (Vector)super.clone();
    v.elementData = new Object[elementCount];
    System.arraycopy(elementData, 0, v.elementData, 0, elementCount);
    v.modCount = 0;
    return v;
} catch (CloneNotSupportedException e) { 
    // this shouldn't happen, since we are Cloneable
    throw new InternalError();
}
    }  ....................
}