初学java,对java.lang.Object中的clone和equals方法不是很理解,为什么要重写?对其前因后果不了解,很难消化。
请大家帮帮我,谢谢!

解决方案 »

  1.   

    是,没错,不一定要重写。
    当Object类的clone方法不满足你的用处时,也就是说Object的clone方法是浅复制,当你要进行深度复制的时候  你要重写clone方法equals方法重写的时候  需要重写hashcode方法。
    当你自定义一个类的时候,有可能要重写以上两种方法
      

  2.   


    补充一点  当你的对象里的变量是基础类型的时候 clone方法是安全的  反之如果不是基础类型  那么clone之后这些非基础类型的变量指向同一块内存地址
      

  3.   

    JDK 文档里倒是没说一定要,应该根据你实际的逻辑看着办,做到应用里全局统一就可以了:-)
      

  4.   

    恩,对象里的引用在 clone 的时候一定要注意。
      

  5.   

    具体怎么重写
    ??????
    clone()是个protected 权限啊?
      

  6.   

    重写成public就好了
    即便是浅拷贝,也推荐写成public 然后直接return super.clone()   OVER