我仍然不明白为什么“Acc obj = new Test()”不会提供对超类中受保护整数的访问权限,但“Test obj = new Test()”将提供访问权限。
Acc obj = new Test(); < - NO访问受保护的整数
测试obj = new Test(); < - YES访问受保护的整数
navigator.cookie
package p1;
public class Acc {
int p;
private int q;
[b]protected int r;[/b]
public int s;
}
答案 0 :(得分:0)
Java只允许子类访问位于不同包中的受保护成员,如果它“负责实现”....即。如果它可以确定类型IS-A的子类。如果要在使用超类引用时访问受保护的成员,则需要先将其强制转换。