当前位置: 首页 > 面试题库 >

Java:调用super.clone()的clone()操作

吴靖
2023-03-14
问题内容

我没有完全理解在类的clone()方法中返回super.clone()的想法。首先,与之相关的返回一个对象是一个超类,其中所包含的LESS数据少于所请求的数据,因为一个超类“不是”子类,而是一个子类“是”超类。并且如果有一长串子类,每个子类都调用super.clone(),那为什么不导致它最终在不是子类的链的根部调用Object.clone()?

抱歉,这令人困惑;我有时会迷惑自己


问题答案:

clone()in 的实现Object检查实际类是否实现Cloneable,并创建该实际类的实例。

因此,如果要使您的类可克隆,则必须实现Cloneable并将结果 转换
super.clone()类。另一个负担是,即使您知道它不会发生(因为您的类实现了),对to的调用也super.clone()可能引发CloneNotSupportedException必须捕获的a
Cloneable

类上的Cloneable接口clone方法Object很明显就是面向对象设计出错的情况。



 类似资料:
  • 任何人都可以指向一个官方Java文档,该文档描述了流将调用每个元素的每个“无干扰和无状态”中间操作的次数。 例如: 以上代码当前将调用< code>check方法4次。 在JDK的当前或未来版本中,方法的执行次数是否可能多于或少于从List或任何其他标准JavaAPI创建的流中的元素数量?

  • 1.子类扩展父类。2.子类实现Cloneable并重写clone()方法调用super。clone()3.父类既不实现Cloneable接口,也不重写clone(()方法。 输出:克隆父类和子类状态。 问题:在父类没有实现标记接口Cloneable的情况下,父类状态如何被对象类克隆?

  • 本文向大家介绍如何通过JVM角度谈谈Java的clone操作,包括了如何通过JVM角度谈谈Java的clone操作的使用技巧和注意事项,需要的朋友参考一下 前言 最近在给熔断器组件增加一个降级策略(Hystrix好像没有这个配置),我们提供了如下几种策略: 1、默认策略 2、返回常量值 3、抛出指定异常 4、执行一段groovy脚本 当然了,这些配置都是可以在平台上配置,并立即生效的。 目前返回常

  • 问题内容: 我阅读了J.Bloch撰写的Effective Java,其中写道: 如果您设计用于继承的类,请注意,如果您选择不提供行为良好的受保护克隆方法,则子类将无法实现Cloneable。 我有A类: B类扩展了A类: 因此,在这种情况下,我无法覆盖方法?如果是,则请解释原因。 问题答案: 在您的情况下,您可以覆盖: 而且仍然有一个有效的克隆机制-因此,当您陈述自己时,您就是在说实话。 但是,

  • 问题内容: 我在这里读到,系统调用用于在Linux中创建线程。现在,语法的是这样的,就需要启动程序/函数地址传递给它。 但是在此页面上,此内容是内部调用的。所以我的问题是,由子程序创建的子进程如何开始运行调用后的代码部分,即它如何不需要以函数为起点? 如果我提供的链接信息不正确,请引导我找到一些更好的链接/资源。 谢谢 问题答案: 对于此类问题,请始终阅读源代码。 从glibc (GitHub)(

  • 本文向大家介绍Java中为什么要用 clone?相关面试题,主要包含被问及Java中为什么要用 clone?时的应答技巧和注意事项,需要的朋友参考一下 在实际编程过程中,我们常常要遇到这种情况:有一个对象 A,在某一时刻 A 中已经包含了一些有效值,此时可能会需要一个和 A 完全相同新对象 B,并且此后对 B 任何改动都不会影响到 A 中的值,也就是说,A 与 B 是两个独立的对象,但 B 的初始