2
I have a very beginner question about polymorphism/access modifiers in Java.
I’d like to find out why a certain phenomenon occurs in my code. Below is an example of classes:
Class Pai:
public class Pai {
    public void metodo1() { //private dá problema
        System.out.println("Metodo 01 Pai");
    };
    public void metodo2() {
        metodo1();
    }
}
Class that inherits the previous class:
public class Filha extends Pai{
    public Filha() {
    }
    public void metodo1() {
        System.out.println("Metodo 01 Filha");
    }   
}
And class Main:
public class Main {
    public static void main(String  args[]) {
        Pai instancia = new Filha();
        instancia.metodo2();
    }
}
The println of Main is "Metodo 01 Filha". However, by changing the metodo1() class Pai for private, the return of the method main becomes "Metodo 01 Pai". I would like to understand why this change occurs.