栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么要覆盖Java中的克隆方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么要覆盖Java中的克隆方法

由于Java中的每个类都从Object扩展而来,因此它应该具有clone方法,但仍然被迫重写clone

不,您没有被迫重写该

clone
方法。在继承中,当您继承一个类时,您不必强制重写它的方法。其修饰符是公开的或受保护的并没有多大区别。但是,如果要直接在
super
类引用上调用方法,则该方法必须为
public
。受保护的方法只能通过继承访问。也就是说,您只能通过
subclass
引用访问它们。或者,如果您覆盖该方法,则可以通过
super
关键字访问它们。

话虽如此,您不应该

clone
按原样重写method
broken
。因为,对于要克隆的类,您需要实现
Cloneable
接口。然后您的班级改用class的
clone
方法
Object
。因为,
Cloneable
interface确实没有用于的任何方法
cloning
。改用它会是一个更好的选择
CopyConstructor

public class A {   private int data;   public A() {   }   public A(A a) {      this.data = a.data;   }}

有关更多详细信息,我建议您阅读本章“

Joshua Bloch's
有效的Java”,其中涵盖了使用
clone
方法的所有方面。

有效的Java-
项目#11-明智地覆盖克隆



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/438308.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号