java的clone()方法实现浅克隆和深克隆

1.浅克隆:克隆对象的基本类型(引用类型:类,数组和接口不可克隆),通过实现Cloneable接口来重写clone()方法

class A (基本类型)

@Override

    protected A clone(){

        A a = null;

        try {

            a = (A)super.clone();

        } catch (CloneNotSupportedException e) {

            e.printStackTrace();

        }

        return a;

    }

A  a;(已有数据内容)

A aClone = a.clone(); (克隆复制)

2.深克隆:在浅克隆的基础上,可以克隆引用类型,也是实现Cloneable接口重写clone()方法

class B(包含引用类型A)

@Override

    protected B clone(){

        B b = null;

        try {

            b = (B)super.clone();

            b.a = a.clone();

        } catch (CloneNotSupportedException e) {

            e.printStackTrace();

        }

        return b;

    }

B b;(已有数据内容)

B bClone = b.clone();(克隆复制)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容