Mais uma questão

Uma questão interessante.
Vejam o código abaixo:

public class A { 
  
  private void m1(){
  	System.out.println("método da classe A");
  }

  private class B {

     //reparem que na classe A, também existe um método com este mesmo nome
     void m1(){
	System.out.println("método da classe B");     
     }

     void print () { 
       m1(); // output = método da classe B
       	     // que código, escrito nesta linha daria um output = método da classe A
	     // a) A.m1();
	     // b) A.this.m1();
	     // c) outer.m1();
	     // d) parent.m1();
	     // e) A.this.m1;
	     // f) Não dá, pois o método m1() da classe A é private
     } 
     
  }
  
  public static void main(String args[]){
	  B b =  new A().new B();
	  b.print();
  }
}

e aí… qual será a resposta?

ps: Por que é que alguém iria criar uma inner class e implementar um método com um nome que já existe na outer class :?:

Não compila pq a classe B é privada…
certo :?:

[quote=“cariocathi”]Não compila pq a classe B é privada…
certo :?:[/quote]
A inner-class B pode ser privada sim e não dá erro nenhum. :wink:

A resposta é :

b) A.this.m1();