Pq isso nao é possivel?

Ola galera alguem sabe me dizer pq isso nao é possivel
com classe interna comun??

   class Externa{
        int x(){
        System.out.println("encapsuladora"); 
        return 0;
              }
         class Interna{
          
              void x(){
                 //x();
                System.out.println("interna comun"+x()); //daria certo se mudar assinatura do metodo para tipo int,mas alguem sabe pq??
                
              }
          }
      
   }
public class NewClass {
 
    public static void main(String...a){
      
    }
}

Como você quer concatenar o resultado de um método void? Void não gera resultado!

O x() interno está escondendo o método x() externo.

Para fazer isso, você teria que fazer:

[quote=ViniGodoy]Como você quer concatenar o resultado de um método void? Void não gera resultado!

O x() interno está escondendo o método x() externo.

Para fazer isso, você teria que fazer:

[/quote]

valeu cara !!!

uma classe interna ela tem acesso aos metodos da classe encapsuladora entao, é como se vc tivesse subscrevendo o metodo ai, entao se nao mudar o tipo do args nao vai compilar a mesma regra de subscricao que se aplica em herança.