以下星座:
public class AccessModifierTest {
private static class Super {
private int n = 3;
private Super() {}
private void setN(int n) {
this.n = n;
}
}
private static class Sub extends Super {
private Sub() {
super(); // invoking private ctor is permitted
// setN(5); but invoking private method is not permitted, why?
// super.setN(5); this is fine too
}
}
public static void main(String[] args) {
Super superInstance = new Sub();
}
}
Sub类的私有构造函数可以调用Super类的私有构造函数。
为什么这样做是可以的,在这里得到了解答: 嵌套类中私有构造函数的作用域
因此,在Sub类的构造函数中调用私有方法setN,也应该是可以的,对吗?
为什么这样做不合法呢?