//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); } }上面的测试代码可以通过编译运行,所以是正确的。
protected 在 同一个类 , 同一个包 , 和 子类中 都能访问
protected是同包,或者不同包但是子类,都可以访问
作用域 类内部 同一包内 子孙类 包外public Y Y Y Yprotected Y Y Y Nfriendly Y Y N Nprivate Y N N N看一下就知道了!
protected用途与继承
http://blog.csdn.net/lanegg/archive/2009/06/15/4271213.aspx
//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);
}
}上面的测试代码可以通过编译运行,所以是正确的。