область действия частного конструктора во вложенном классе

Это большеpuzzle чем вопрос. У меня есть следующий код:

public class PrivateBaseConstructor {
    public static class BaseClass {
        private BaseClass() {
        }

    }

    public static class DerivedClass extends BaseClass {
        public DerivedClass() {
            super(); // 1*
        }
    }
}

Здесь призыв кsuper(); в 1 * разрешено событие, хотя конструктор базового классаprivate, Если мы напишем классы как отдельные классы в одном пакете:

BClass.java
public class BClass {
    private BClass() {

    }
}

DClass.java
public class DClass extends BClass {
    public DClass() {
        super(); // 2*
    }

Компилятор правильно выдает ошибку при 2 *, поскольку конструктор базового класса не виден.

Почему компилятор не выдает ошибку в моем первом сценарии, когда оба класса объявлены как статические в одном классе?

Ответы на вопрос(3)

Ваш ответ на вопрос