以下例子说明:protected是不同包中对子类可见,对非子类不可见 马克- to-win:马克 java社区:防盗版实名手机尾号: 73203例1.2.2.a:---本例为正常用法package p1;public class A {protected int i;protected void printIProtected() {System.out.println("i=" i);}}package p2;import p1.A;class B extends A {void printIInB() {System.out.println("in B i=" i);//protected是不同包中对子类(Test)可见,马 克-t o-w i nprintIProtected();}}public class Test {public static void main(String[] args) {A a=new A();// a.i=7;//报错, 注意这里不能直接用// a.printIProtected();//报错, 注意这里不能直接用B b = new B();// b.i = 10;//报错,Test不是A子类,非子类不能访问protected// b.printIProtected();//报错,Test不是A子类,非子类不能访问protectedb.printIInB();}}结果:in B i=0i=0例1.2.2.b:---本例为非正常用法,通常不直接访问protected方法比如b.printIProtected();package p1;public class A {protected int i;protected void printIProtected() {System.out.println("i=" i);}}package p2;import p1.A;public class Test extends A {void printIInB() {,我来为大家科普一下关于public 可以访问类内的所有成员吗?以下内容希望对你有帮助!

public 可以访问类内的所有成员吗(访问控制protected是不同包中对子类可见)

public 可以访问类内的所有成员吗

以下例子说明:protected是不同包中对子类可见,对非子类不可见。 马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。例1.2.2.a:---本例为正常用法。package p1;public class A {protected int i;protected void printIProtected() {System.out.println("i=" i);}}package p2;import p1.A;class B extends A {void printIInB() {System.out.println("in B i=" i);//protected是不同包中对子类(Test)可见,马 克-t o-w i nprintIProtected();}}public class Test {public static void main(String[] args) {A a=new A();// a.i=7;//报错, 注意这里不能直接用// a.printIProtected();//报错, 注意这里不能直接用B b = new B();// b.i = 10;//报错,Test不是A子类,非子类不能访问protected// b.printIProtected();//报错,Test不是A子类,非子类不能访问protectedb.printIInB();}}结果:in B i=0i=0例1.2.2.b:---本例为非正常用法,通常不直接访问protected方法。比如b.printIProtected();package p1;public class A {protected int i;protected void printIProtected() {System.out.println("i=" i);}}package p2;import p1.A;public class Test extends A {void printIInB() {

篇幅有限更多请见扩展链接:http://www.mark-to-win.com/tutorial/java_3_ProtectedIsVisibleDifferentPackageSubclass.html

,