clone() 具有受保护的访问权限 - 已创建公共对象 clone()
我正在编写代码来创建一个对象,克隆该对象,然后比较两者。
所讨论的对象 Octagon 是对象 GeometricObject 的扩展
public class Octagon extends GeometricObject implements Comparable<Octagon>, Cloneable {
private double side;
public Octagon (double side){
this.side = side;
}
public Object clone() throws CloneNotSupportedException {
Octagon octClone = (Octagon)super.clone();
return octClone;
}
在名为 Octagon 的文件中.java
在另一个中,TestOctagon.java是我的主要方法:
public class TestOctagon {
public static void main(String[] args) {
GeometricObject test = new Octagon(5); //create an Octagon with a side of 5
System.out.println("Area is: "+test.getArea());
System.out.println("Perimeter is: "+test.getPerimeter());
Octagon copy = (Octagon)test.clone();
}
}
错误出现在 main 方法的最后一行。
clone() has protected access in Object
我尝试过在Octagaon中重命名克隆方法,说到cloneme,但后来我得到错误:
cannot find symbol
symbol: method cloneme()
location: variable test of type GeometricObject
我感觉问题是因为八角形扩展了另一个对象,也许?
我真的找不到任何解决方案,我花了很长时间阅读了这里的所有其他克隆()帖子。
编辑:需要我使用克隆。我知道普遍的共识是克隆是无聊的。