首先请不要用Thinking in Java里的话回答1.clone跟C++中的深拷贝 浅拷贝有联系吗?
2.什么副本和引用的过程麻烦用浅显易懂并且逻辑鲜明的话解释。
3.super.clone()怎么回事,糊涂了..
4.Object中权限是protected 为何要用public覆盖,是必须的吗?请高手指教。
2.什么副本和引用的过程麻烦用浅显易懂并且逻辑鲜明的话解释。
3.super.clone()怎么回事,糊涂了..
4.Object中权限是protected 为何要用public覆盖,是必须的吗?请高手指教。
对副本的修改,不会影响原对象;引用则会。
super.clone()应该是调用Object对象的实现。
super.clone()就是简单的调用父类的clone()方法啊.假如你的类是继续自其它类(非Object)的时候这就是非常必要了嘛.类A
{
ArrayList list = new ArrayList();
}A a = new A();
A b = a.clone();
如果是浅拷贝:
那么a,b都有一个"list"引用变量,而且都是引用"同一个"对象.
如果是深拷贝:那么a,b应该是都有一个"list"引用变量,但是他们引用的不是同一个对象ArryList,而这两个ArrayList的内容却是一样的,也就是需要list也来clone一个.