public abstract class AbstractMobile implements Cloneable
{
    String mobileName;    public void setMobileName(String name){ mobileName = name;}//end setMobileName(...)    public String getMobileName(){return mobileName;}//end getMobileName()    public Object clone()//实现clone方法
    {
        Object object = null;
        try{
            object = super.clone();
        }catch(CloneNotSupportedException cloneException){
            System.err.println("AbstratMobile is not Cloneable");
            cloneException.printStackTrace();
        }
        return object;
    }//end clone()
}//end abstract class AbstractMobile这是一个原型模式的一个abstract 类,它里面的方法clone() 里面的“ object = super.clone();”这句话十在看不明白。
好像abstract 类没有父类了吧,而super 是执行父类的方法啊。
这里面只有一个接口:Cloneable而以,难道是执行接口里面的 clone();方法吗? 不太明白啊!

解决方案 »

  1.   

    楼主别忘了一点,java里面的任何类都是继承Object的,它有clone方法
      

  2.   

    object = super.clone();
    难道是clone一个Object给object 吗?好像不对吧。它的功能是clone自己给一个object 才对啊!
    这里的super是指向谁呢?
      

  3.   

    Object里的clone()是个native方法,是由编译器来实现的,如果你不重写它,它就是clone当前对象。具体怎么实现你就不用管了,反正你知道它会重新构造一个当前对象同类型的对象,并且把当前对象的所有属性都赋值给新对象就可以了。
      

  4.   

    public abstract class AbstractMobile implements Cloneable
    ==> public abstract class AbstractMobile extends Object implements Cloneable
      

  5.   

    abstract只是一个设计上的一个概念,并不是说被定义了abstract的类只能有abstract的方法。
      

  6.   

    http://www.small8.com/wz_219660/
    看一下这里的文章,有一定帮助
      

  7.   

    不是说抽象类只能有抽象方法,那是interface,不予考虑
    是应该有抽象方法。
    如果没有抽象方法,那为什么还要定义为抽象类?
    需要子类必须去实现什么方法?
      

  8.   

    所有的类不论是不是抽象的他都是同Object中继承而来,在Object中有一个Clone()方法,super.clone(),就是要调用它
      

  9.   

    clone是Object定义的方法,任何对象都是继承于它.