Java: 克隆

实现Cloneable接口,重新定义clone方法,指定public修饰符

浅拷贝:

拷贝数值或其他基本类型
对于子对象会得到另一个引用,原对象和克隆对象仍共享子对象

示例:

class A implements Cloneable {
	public A clone() {
		try {
			return (A) super.clone();
		} catch(CloneNotSupportedException e) {
	  		return null;
	  	}
	}
}

深拷贝:

拷贝数值或其他基本类型
克隆所有子对象

示例:

class A clone() implements Cloneable {
	public A clone() {
		try {
			A cloned = (A) super.clone();
		    cloned.b = (B) b.clone();
			return cloned;
		} catch (CloneNotSupportedException e) {
			return null;
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/baidu_25104885/article/details/84623803