假设我有一个带有包可访问成员的基类:
package testcase;
public class B
{
int b;
}
它有一个子类:
package testcase.sub;
import testcase.B;
public class C
extends B
{
int c;
}
现在我需要从定义该字段的同一包中访问成员字段:
package testcase;
import testcase.sub.C;
public class A
{
void testcase( C c )
{
c.c = 0; // HINT
( (B) c ).b = 1; // FIRST
c.b = 2; // SECOND
}
}
编辑:我完全理解A
无法访问c.c
以及为什么标记为 HINT 的行无法编译:C.c
仅对同一包中的代码可见,而 C.c
在包装中testcase.sub
A
位于testcase
.
但是A
和B.b
均在包装中 testcase
那么为什么第一个作业可以编译,而第二个作业却不能编译呢?
最佳答案
C
无权访问 B.b
,B.b
是包级别权限,B
位于testcase
包,但 C
位于 testcase.sub
包中。它们不是同一个包,因此 C
没有 b
字段。
关于java - 无法访问同一包中的类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36360442/