Почему класс не может расширять статический вложенный класс, встречающийся в нем?

Этот класс:

public class OuterChild extends OuterChild.InnerParent {
    public static class InnerParent {
    }
}

Не в состоянии компилировать:

$ javac OuterChild.java
OuterChild.java:1: error: cyclic inheritance involving OuterChild
public class OuterChild extends OuterChild.InnerParent {
       ^
1 error

так какOuterChild будет "зависеть от" себя, потому что§8.1.4 «Суперклассы и подклассы»Спецификация языка Java, Java SE 8 Edition) класс напрямую зависит от любого типа, который "упоминается в [его]extends или жеimplements пункт […] в качестве квалификатора в полностью квалифицированной форме имени суперкласса или суперинтерфейса. "

Но я не совсем понимаю мотивацию здесь. Что такое проблемная зависимость? Это просто для согласованности со случаем, когдаInnerParent были неstatic (и, следовательно, в итоге получился бы сам по себе лексический экземпляр)?

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

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