我在遵循Java文档中的可访问性规则时遇到了困难。我无法找到这个问题的明确答案。
假设您位于类C
的实例方法的主体内,并且该变量c
具有编译时类型C
。
E.g。假设你有
class C {
<returnType> instanceMethod(...) {
C c;
...
}
}
C
的成员(方法或字段)及其可以为this
访问的超类是否与c
可以访问的成员集完全相同1}?换句话说,在this.member
被允许的情况下,是否允许c.member
是真的吗?或者它的this
会产生影响吗?
它适用于super
吗?换句话说,如果C
的超类是D
而d
的编译时类型为D
,那么super.member
是否恰好在{{1}时被允许}} 被允许?
答案 0 :(得分:1)
C
的成员(方法或字段)及其可以为this
访问的超类是否与c
可以访问的成员集完全相同1}}?
是。访问修饰符适用于类级别而非对象级别。
是否适用于
super
?
是的,当且仅当d.member
被允许时才允许super.member
。