protected 子类对象可见 父类对象不可见两个不同包 父类放在testinf包 子类放在fff包
//父类
package testinf;public class AA {
protected String sSting="123456";
}//------------------------////子类
package fff;
import testinf.AA;public class R extends AA{

public static void main(String[] args) {
 AA aa = new AA();
 //---System.out.println(aa.sSting);为什么父类访问不了
 R r = new R();
 System.out.println(r.sSting);
}
}

解决方案 »

  1.   

    应该是这样的:
    private 为该类访问属性,只能在该类内部访问。
    protected 为包访问属性,只能在该包中访问,在其他包中就不能访问了。
    public  为公共访问属性,不论是在包中还是在包外都能访问。
      

  2.   


    protected怎莫会是包访问权限呢
      

  3.   

    //---System.out.println(aa.sSting);为什么父类访问不了作为protected的对象,子类只能通过继承去访问,不能通过创建父类的对象去访问
    也就是说要通过子类的引用去访问才可以,这是java的规则另外,注意,父类的属性和方法都是可以继承的
    但是属性不可以修改,而方法可以被重写
      

  4.   

    protected:同一包中可以访问,不同包的子类可以访问;
      

  5.   

    作为protected的对象,子类只能通过继承去访问,不能通过创建父类的对象去访问
    也就是说要通过子类的引用去访问才可以,这是java的规则。正解。
      

  6.   

    你把main方法写到另一个类你就会发现问题了
    protected修饰的成员只能在类及子类内部访问
      

  7.   

    补充下:
    AA aa=new AA();//---System.out.println(aa.sSting);为什么父类访问不了?是因为不在A的内部
    R r=new R(); System.out.println(r.sSting); 可以。是因为在B的内部(main同样属于B)
      

  8.   

    //父类
    package testinf;public class AA {
        protected String sSting="123456";
    }
    //子类
    package fff;
    import testinf.AA;public class R extends AA{
        
        public static void main(String[] args) {
             AA aa = new AA();
             //---System.out.println(aa.sSting);为什么父类访问不了
             R r = new R();
             System.out.println(r.sSting);
        }
    }在子类中根本调用不到 AA类中用 protected  修饰的访问不了
      

  9.   

    protected 为包访问属性,只能在该包中访问,在其他包中就不能访问了。