Por que uma classe interna não estática não pode ter membros estáticos (campos e métodos)? [duplicado]

Duplicata Possível:
Por que não podemos ter o método estático em uma classe interna?

Eu sei que a criação de um objeto de classe interna não-estático requer um objeto de classe externa e o objeto de classe interna não-estático criado automaticamente tem uma referência oculta ao objeto da classe externa. Mas por que uma classe interna não estática não pode ter membros estáticos? O designer Java apenas tem que desaprovar o acesso de campos de classe externa não estáticos dentro de um método estático da classe interna, faria mais sentido, não?

Se não faz sentido ter membros estáticos em uma classe interna, por que a classe interna pode herdar membros estáticos herdando uma classe que possui membros estáticos?

Eu li issopostar também. Como é mencionado:

Classes internas podem herdar membros estáticos que não são constantes de tempo de compilação, mesmo que eles não possam declará-los. Classes aninhadas que não são classes internas podem declarar membros estáticos livremente, de acordo com as regras usuais da linguagem de programação Java.

É uma convenção?

Aqui está o meu código:

public class OuterClass {

    private int outerClassField;

    public void doSomethingOuterClass() {
        outerClassField = 1;
    }

    public static void doSomethingStaticOuterClass() {
        // outerClassField = 2; // Error: Because static method cannot access an specific object's field
    }

    public class InnerClass extends ClassWithStaticField {

        // Error: Why a non-static inner class cannot have static fields ?
        // public static int innerClassStaticField = 1;

        public void doSomethingInnerClass() {
            outerClassField = 3;
            staticField = 1;
        }

        // Error: Why a non-static inner class cannot have static methods ?
        // public static void doSomethingStaticInnerClass() {
        // outerClassField = 4;
        // }
    }

    public static void main(final String[] args) {
        // If it does not make sense to have static members in an inner class, why inner class can inherit statis members by inheriting a class who has static
        // members?
        OuterClass.InnerClass.staticField = 1;
        OuterClass.InnerClass.staticMethod();
    }
}

class ClassWithStaticField {
    public static int staticField;

    public static void staticMethod() {
    };
}

questionAnswers(3)

yourAnswerToTheQuestion