书上说,object类提供了一个protected的clone方法,然后如果要实现深拷贝,需要把继承的prtected的clone方法提升为public?????????????????????可以把继承来的protected再改为public??????????那安全性不是全没有了???????访问属性可以修改的么,可以提升到public?也可以下降为private????????另外,protected和默认的也就是friendly的区别是什么,我好像又分不清楚了......

解决方案 »

  1.   

    不改为public,外边怎么调用这个方法?默认的也就是包里的访问限制,就是在包内相当于public,对包外相当于private.
    protected和包的上面的2点是相同的,但是对于其他包中继承该类的类相当于public,就是说子类中可以直接使用父类的protected的东西,即使不在一个包里.
    可能比较绕,你自己写代码测试一下就知道了.
    或者看老紫竹的博客,http://blog.csdn.net/java2000_net/archive/2008/10/12/3063878.aspx
      

  2.   

    发个老表
    作用域 当前类 同一package 子孙类 其他package public       √ √ √ √ protected    √ √ √ × friendly     √ √ × × private      √ × × × 
      

  3.   

    哦,怪不得书上不建议用protected不清楚啊,C++里面似乎是有继承方法的,似乎继承完了是不能改权限的,JAVA里面,刚刚知道
      

  4.   

    学习了,我想问下重写Object的clone方法后在实现深度克隆的时候,这个方法被谁调用啊?其他类吗?