Na aula dois deste módulo, é apresentado o seguinte código :
class A{
public void metodo() {
System.out.println("a");
this.metodo2();
}
public void metodo2() {
System.out.println("metodo 2 do pai");
}
}
class B extends A {
public void metodo() {
System.out.println("b");
super.metodo();
}
public void metodo2() {
System.out.println("c");
metodo();
super.metodo();
}
public static void main(String[] args) {
new B().metodo2();
}
}
e o Guilherme explicou que entra em loop infinito, pois quando estamos chamando o metodo2 que está na classe A, na verdade estamos chamando o objeto metodo2 da classe filha B, a explicação foi muito rasa para mim, não compreendi totalmente, se o metodo2 está na classe A como é e por que ele invoca o metodo2 da classe B ? e como eu faria para chamar o metodo2 da classe A ?