Tenho esse código e gostaria de saber pq n imprime “Classe B em A”
class A{
public A(){
System.out.println("Classe A");
}
public B classeB(){
return new B() {
public void B(){
System.out.println("Classe B em A");
}
};
}
}
class B{
public B(){
System.out.println("Classe B");
}
}
class TesteAninhado{
public static void main(String[] args){
A i = new A();
i.classeB();
}
}
class TesteAninhado{
public static void main(String[] args){
A i = new A();
i.classeB();
}
}
Nesta parte vamos até o construtor da classe A
[code]class A{
public A(){
System.out.println("Classe A");
}
[/code]
Aqui ja será impresso ‘Classe A’
Aqui vamos até o método classeB
public B classeB(){
return new B() {
public void B(){
System.out.println("Classe B em A");
}
};
}
Quando ele faz return new B() vamos até o construtor da classe B
[code]class B{
public B(){
System.out.println("Classe B");
}
}[/code]
E aqui temos a impressão de 'Classe B’
e termina porque public void B() nunca será usado concorda ??