Pq isso nao é possivel?

3 respostas
F

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){
      
    }
}

3 Respostas

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:

F

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:

valeu cara !!!

LPJava

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.

Criado 27 de dezembro de 2007
Ultima resposta 27 de dez. de 2007
Respostas 3
Participantes 3