在Java中,Cloneable接口是一个标记接口,它没有任何方法。它的存在是为了告诉编译器,该类可以被克隆(复制)。
通过实现Cloneable接口,表示该类的实例可以通过调用clone()方法进行复制。clone()方法是Object类中的一个protected方法,它用于创建并返回一个与原始对象相同的副本。
需要注意的是,Cloneable接口只是一个标记接口,它并不强制要求实现类提供clone()方法。如果一个类实现了Cloneable接口但没有重写clone()方法,那么在调用clone()方法时会抛出CloneNotSupportedException异常。 因此,实现Cloneable接口的类需要在其中提供一个public的clone()方法,并在该方法中实现对象的复制逻辑。
使用clone()方法进行对象复制时,复制的是对象的字段值,而不是引用的对象本身。这意味着复制后的对象和原始对象是独立的,对复制对象的修改不会影响原始对象。
总而言之,Cloneable接口的作用是告诉编译器,该类可以被克隆,并且需要实现clone()方法来提供对象的复制功能。
-
只写了 实现了Cloneable接口但没有重写clone()方法,因为
java: clone() 在 java.lang.Object 中是 protected 访问控制
1.1 其它类是调用不了的。
1.2 当前类是可以的
-
不写Cloneable接口
调用时报错.CloneNotSupportedException