父类有个属性  name
如果我想在字类中用这个name 为什么必须写在子类的构造器中
public class Child extends Parent{
 public Child(){
    name="XXX";
}
//name = "XXX"; // 这么写会抱错...
}

解决方案 »

  1.   

    这个好像是name属性是父类的私有属性,要用父类的公有接口才可以访问!
      

  2.   

    父类有个属性  name
    如果这个name是私有的,只有父类自己使用;
    如果是protected的,那它及所有子类都可以用;
    如果是public的,那其他非继承类都可以使用(前提是不同包的其他类要访问这个name时,只有父类本身也是public的)
      

  3.   

    Java是纯面向对象的语言,楼主注释掉的那句话应该放到一个方法里,而不能直接扔到类里面。
    下面这个不报错的话,说明name是父类的public或protected成员,并不是私有的。
    public Child(){
        name="XXX";
    }
      

  4.   

    问题是父类的 属性 name 被我定义的是public的,
      

  5.   

    应该是你父类有自己的构造函数,而子类中你又要写构造函数,从而冲突了的原因 导致的如果你是像下面这样public class Child extends Parent{
     public Child(){
        name="XXX";
    }
    }
    class Parent{
    public String name;

    }是肯定不会报错的,