Object类中clone()方法的修饰符为什么是protected
来源:互联网 发布:java接收微信事件推送 编辑:程序博客网 时间:2024/06/06 23:41
利用protected修饰clone方法,是为了安全考虑。Object类中的clone方法是浅拷贝,如果是对象,它拷贝的只是这个对
象的一个引用,而这个引用仍然指向那个对象,当我们改变这个引用的属性时,原来对象也会跟着改变,这不是我们
希望看到的,但是Object类肯定做不到深拷贝,因为它不知道你的类里有哪些引用类型,所以把修饰符定义为
protected,这样想要在其他任何地方调用这个类的clone方法,这个类就必须去重写clone方法并且把修饰符改为
public,并且把修饰符修改为public,这样在任何地方都可以调用这个类的clone方法了。
如上图所示,类A是要被克隆的类,类B相当于要使用A的地方,如果类A不重写clone方法,在B类中是调不到clone方
法的,因为A和B既不是子父类关系,也不在同一个包下,所以clone方法对B是不可见的。
当类A实现Cloneable接口并且重写clone方法后,clone方法在B类中就可见了,也就是说我们在任何地方都可以克隆A
了。
总结:用protected修饰clone方法,主要是为了让子类去重写它,实现深拷贝,以防在其他任何地方随意调用后修改
了对象的属性对原来的对象造成影响。
1 1
- Object类中clone()方法的修饰符为什么是protected
- Java 中 Object.clone() 方法以及protected 的一点思考
- Object中的clone为什么是protected,而不是public?
- Java-Object的clone方法 protected的相关问题。
- Java中数组的clone方法为什么是浅复制
- 为什么调用Object的clone方法却可以使得自己类中的对象被clone呢?
- 【protected权限】java浅复制、深复制中,为什么在派生类中覆盖基类的clone()方法,并声明为public
- Java中Object类的clone()(克隆)方法
- 详解java中Object的clone方法
- Object的clone方法
- Object 的clone方法
- Object的clone方法
- Java:由Object.clone()而引出的protected权限问题
- Java Object的clone方法
- Java中访问修饰符protected的权限
- 关于java中protected修饰符的重新认识
- Object类中的clone方法
- Object类中的方法,修饰符
- Java writer reader与相关练习
- imessage使用一
- Oracle(5)使用profile文件对口令进行管理
- Java实现字符与Unicode互转
- H
- Object类中clone()方法的修饰符为什么是protected
- 《易读》一个模仿网易云音乐UI,Rxjava+Retrofit+dagger2+MVP的开源项目
- 解决卡顿——在WPF中使用多线程更新UI
- AIDL实现进程间通信
- 转:提高系统性能的相关技术
- 利用Document读取和修改数据
- PyTorch 设置使用GPU
- 1x1卷积核作用
- android-支持多种屏幕[访问资源] 十五