public class T1
{
public static void main(String[] args)
{
A aa = new A();
A bb =(A) aa.clone();
}}
class A
{
public Object clone() {
  A o = null;
  try {
   o = (A) super.clone();
  } catch (CloneNotSupportedException e) {
   e.printStackTrace();
  }
return o;
}
}

解决方案 »

  1.   

    class A implements Cloneable
      

  2.   

    o = (A) super.clone();super.clone()调用父类的方法,但是你的父类在哪呀。
      

  3.   

    正确,如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,则会导致抛出 CloneNotSupportedException 异常。 按照惯例,实现此接口的类应该使用公共方法重写 Object.clone(它是受保护的)。
      

  4.   

    Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。 
      

  5.   

    o = (A) super.clone(); 
    super.clone()调用父类的方法,但是你的父类在哪呀。
    所以要加上 class Aimplements Cloneable 
      

  6.   

     就是要实现Cloneable接口啊,这是规定的,java里的Cloneable是标识接口,表面上什么都不做,但是是由jvm负责工作的,我们只需要声明implement了这个接口,剩下的工作自然会由jvm负责的(但关键代码还是要有的),如果不声明,jvm就认为这些类不符合相关的要求,就会报异常
      

  7.   

    答:
    1)类A必须要implements Cloneable.
    2)类A中clone()代码可如下写:public Object clone() {
       return super.clone();
    }
    3)为什么要这样做?关键是要了解:super.clone()做了什么.
    它做了:http://topic.csdn.net/u/20090216/22/b91ae1df-ec34-405e-8faf-f529b6b6405b.html