compilador Java proíbe a criação no método da classe interna com o mesmo nome da classe externa se as assinaturas forem diferente

Por que esse código funciona:

class Parent {
    private void methodA(String a){
        System.out.println(a);
    }

    class Inner {

        void test(int a){
            methodA("1");
        }
    }
}

Mas este código não funciona (apenas adiciono método à classe interna com o mesmo nome e outra assinatura):

class Parent {
    private void methodA(String a){
        System.out.println(a);
    }

    class Inner {

        private void methodA(int a){
            System.out.println(a);
        }

        void test(int a){
            methodA("1");
        }
    }
}

Não pergunto como fazê-lo funcionar. Quero dizer por que a segunda opção não funciona? Eu quero uma explicação, não uma soluçã

questionAnswers(2)

yourAnswerToTheQuestion