为什么重写clone要继承cloneable
时间: 2023-12-24 19:04:13 浏览: 101
在Java中,如果要使用Object类中的clone()方法来克隆一个对象,那么这个对象所属的类必须实现Cloneable接口。这是因为Object类中的clone()方法会检查被克隆的对象是否实现了Cloneable接口,如果没有实现,则会抛出CloneNotSupportedException异常。因此,如果想要使用Object类中的clone()方法来克隆一个对象,就必须在这个对象所属的类中实现Cloneable接口。同时,还需要在这个类中重写Object类中的clone()方法,以便在克隆对象时能够正确地复制对象的状态。因此,重写clone()方法和实现Cloneable接口是密切相关的。
下面是一个示例代码,演示了如何正确地实现Cloneable接口和重写clone()方法来克隆一个Java对象:
```java
public class MyClass implements Cloneable {
private int myInt;
private String myString;
public MyClass(int myInt, String myString) {
this.myInt = myInt;
this.myString = myString;
}
// 省略getter和setter
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
MyClass original = new MyClass(1, "original");
MyClass clone = (MyClass) original.clone();
```
阅读全文