本章定义了GeometricObject和Circle类。 分析以下代码。 哪些说法正确? public class Test { public static void main(String[] args) { GeometricObject x = new Circle(3); GeometricObject y = (Circle)(x.clone()); System.out.println(x); System.out.println(y); } }
A.
该程序有一个编译错误,因为clone()方法在Object类中是protected。
B.
在重写clone()方法并将其在Circle类中公开之后,该程序可以编译并运行正常,但是如果Circle没有实现Cloneable接口,则y为null。
C.
为了使Circle对象能够被克隆,Circle类必须重写clone()方法并实现java.lang.Cloneable接口。
D.
如果GeometricObject实现Cloneable并且Circle重写了clone()方法,则clone()方法将可以很好地克隆Circle对象。