假如有个类CA没有实现深度复制class CA
{
   public int A;
   private int B;
   protected int C;
}
现在我定义个类CB继承CA,并定义CB能做深度复制,且不能更改类CAclass CB:CA,ICloneable
{
    public object Clone()
    {
        CB cb=new CB();
        cb.A=this.A;
        //B和C咋整?        return cb;
    }
}

解决方案 »

  1.   

    保护类型和公共类型子类都是可以访问的。A,C可以直接访问。C的你可以试着用反射进行。
    其实你更好的做法是在基类就提供克隆的方法,子类只要重写自己的即可。
      

  2.   

    在CA中把B这变量封装一下,
    public int B1
    {
    {get;set};
    }
    访问B1就等于访问了B
      

  3.   

    private 访问不了 否则就破坏了封装
    private 就是为了确保安全