1、当一个类的变量声明为protected时,同包中的任何其他类能够访问该变量。
2、当一个类的变量声明为protected时,不同包中的子类可以访问该变量。
这两句话是否都正确? 

解决方案 »

  1.   

    同包能访问除private的
    protected用途与继承
      

  2.   

    看一下
    http://blog.csdn.net/lanegg/archive/2009/06/15/4271213.aspx
      

  3.   


    //A.java
    package a;
    public class A{
    protected String a = null;//使用protected 定义a
    public A(String a){
    this.a = a;
    }
    public static void main(String[] agrs){
    System.out.println(new A("类A中自己访问").a);
    }
    }//B.java
    package a;
    public class B{
    public static void main(String[] args){
    System.out.println(new A("同包中类B可以访问类A的变量a").a);
    }
    }//C.java
    package b;
    import a.A;
    public class C extends A{
    public C(String s){
    super(s);
    }
    public static void main(String[] agrs){
    System.out.println(new C("不同包的A的子类C可以访问A中的变量a").a);
    }
    }上面的测试代码可以通过编译运行,所以是正确的。
      

  4.   

      protected  在 同一个类 , 同一个包 , 和 子类中 都能访问
      

  5.   

    protected是同包,或者不同包但是子类,都可以访问
      

  6.   

    作用域    类内部  同一包内  子孙类   包外public      Y        Y      Y       Yprotected   Y      Y       Y        Nfriendly    Y      Y      N        Nprivate     Y      N       N       N看一下就知道了!