分析以下代码。__________说法是正确的?publicclassTest{publicstaticvoidmain(String[]args){GeometricObjectx=newCircle(3);GeometricObjecty=(Circle)(x.clone());System.out.println(x);System.out.println(y);}}
A. 该程序有一个编译错误,因为clone()方法在Object类中受到保护。
B. 如果重写clone()方法并将其在Circle类中公开之后,该程序可以编译并运行正常,但是如果Circle不实现Cloneable接口,则y为null。
C. 为了使Circle对象能够被克隆,Circle类必须重写clone()方法并实现java.lang.Cloneable接口。
D. 如果GeometricObject实现Cloneable并且Circle重写了clone()方法,则clone()方法将可以很好地克隆Circle对象。