浅克隆:

import com.sun.jndi.cosnaming.IiopUrl;

class Address{

        }

public class Customer implements Cloneable {
    private Address address =null;
    public Customer(){
        this.address=new Address();
    }

    public Object clone(){
        Object obj =null;
        try{
            obj=super.clone();
        }catch (Exception e){
            System.out.println("clone failure");
        }
        return obj;
    }
}

深克隆:
class customer implements Serializable{
    private Address address =null;
    public customer(){
        this.address= new Address();
    }
    public Object deepClone() throws Exception{
        ByteArrayOutputStream bao =new ByteArrayOutputStream();
        ObjectOutputStream os =new ObjectOutputStream(bao);
        os.writeObject(this);
        ByteArrayInputStream bis =new ByteArrayInputStream(bao.toByteArray());
        ObjectInputStream ois =new ObjectInputStream(bis);
        return (ois.readObject());
    }

}

实验结果分析
浅克隆中,Object类充当抽象原型类,Customer类充当具体原型类,浅克隆只复制容器对象,不复制成员对象。
深克隆,Customer和Address实现了Serializable接口,深克隆既要复制容器对象,又要复制成员对象。