gpt4 book ai didi

java - 是否可以使用 clon() 方法而不覆盖它

转载 作者:行者123 更新时间:2023-12-01 19:33:47 27 4
gpt4 key购买 nike

我和我的老师遇到了一些麻烦,我们必须在大约一个月内掌握java的概念,他说以下是可能的:

所以在Java中每个类都继承自Object类,这个类为我们提供了诸如protected Object clone()之类的方法,例如:现在假设我们有类Car

//稍后在 main 中:

Car mycar=new Car();
//he is saying now that following is possible:
Car yourCar=(Car) mycar.clone();

但网上的每篇文章都说这是不可能的,即使我尝试编译它也是不可能的,首先因为该方法受到保护,其次因为它会抛出异常

我有什么遗漏的吗?

最佳答案

是的,只要类实现 Cloneable,您就可以使用 .clone() 而无需覆盖它。

这是一个例子:

class Car implements Cloneable {
String name;
public Car(String n) {
name = n;
}

public static void main(String[] args) throws Exception {
Car c1 = new Car("Lightning McQueen");
Car c2 = (Car) c1.clone();
System.out.println(c2.name);
}
}

这是default behavior of clone()的描述当类实现 Cloneable 但不重写 clone() 时:

this method creates a new instance of the class of this object and initializes all its fields with exactly the contents of the corresponding fields of this object, as if by assignment; the contents of the fields are not themselves cloned. Thus, this method performs a "shallow copy" of this object, not a "deep copy" operation.

关于java - 是否可以使用 clon() 方法而不覆盖它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58566358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com