Lembrando dos tempos de certificação e então me deparei com uma questão parecida com a que irei colocar agora. Não vale compilar o código, portanto tentem entender e sem rodar falar o resultado e dizer por que ele funciona assim ou assado. 
package org.projeto.membros;
public class Mae {
public String saida = "Mãe";
public String mensagem() {
return saida;
}
public Mae() {
System.out.println(mensagem());
}
}
package org.projeto.membros;
public class Filha extends Mae {
public String saida = "Filha";
@Override
public String mensagem() {
return saida;
}
public static void main(String[] args) {
new Filha();
}
}
Qual será o resultado, e por quê? 


