例如我有A类、B类、C类 A类有5个实例变量。 B 类和 C 类都扩展了 A 类。 是否有可能 B 类可以访问所有成员而 C 类只能访问其中 2 个成员?前提是它们位于同一个包中。
最佳答案
这是有可能的。将 3 个字段设置为 private
并将 B
设为 A
的 static
嵌套类。如果转换为 A
,则 B
可以访问 A
的所有成员。像这样:
public class A {
private int a = 1;
private int b = 2;
private int c = 3;
int d = 4;
int e = 5;
public static void main(String[] args) {
new B().test();
}
private static class B extends A {
private void test() {
System.out.println(((A) this).a);
}
}
}
关于java - 是否可以限制一个类的某些成员对另一个类的访问,但不能限制所有其他类的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27933290/