一个类实现了cloneable接口如果不重写就不能调用clone函数这是为什么?就比如下面呢个不重写clone就不能调用clone函数
package cn.edu.apter13;
public class _13_11_Octagon
{
public static void main(String[] args) throws CloneNotSupportedException
{
Octagon octagon1 = new Octagon(5);
System.out.println(octagon1.toString());
Octagon octagon2 = (Octagon) octagon1.clone();
System.out.println(octagon1.compareTo(octagon2));
}
}
class Octagon extends GeometricObject implements Cloneable
{
private double side;
Octagon()
{
this(1);
}
Octagon(double side)
{
this.side = side;
}
@Override
public double getArea()
{
return (2 + 4 / Math.pow(2, 0.5)) * side * side;
}
@Override
public double getPerimeter()
{
return 8 * side;
}
@Override
public String toString()
{
return "area:" + getArea() + " Perimeter :" + getPerimeter();
}
@Override
protected Object clone() throws CloneNotSupportedException
{
return super.clone();
}
}
超好的对java克隆的讲解
http://www.javaeye.com/topic/483469......
答案就在这里:java克隆
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。