通过java中的引用变量跨包保护访问

时间:2015-07-30 18:11:17

标签: java inheritance protected

enter image description here

对于上述层次结构,以下是pkg1

中的代码
package ProtectedAccess.pkg1;

public class T {

    protected int f;
    protected void m(){

    }

}

以下是来自pkg2的代码,其中test2通过将X替换为类TAB或{来测试{1}}或CSDEFG

H

-

1) 如果package ProtectedAccess.pkg2; import ProtectedAccess.pkg1.*; class A extends T {} class B extends T{} class C extends B{} public class S extends B{ void test1(){ f = 42; m(); } void test2(X t){ t.f = 42; t.m(); } } class D extends S{} class G extends D{} class E extends S{} class H extends E{} class F extends S{} 替换为XTAB,则编译错误。

2) 如果C替换为XSDEFG,则事情代码可以正常运行

我如何理解上述两个场景的工作原理?请帮忙!!!

0 个答案:

没有答案