public class Person {
private void say(String s){
System.out.println("I’m saying: " + s);
}
public static void main(String[] args) {
Person p = new Director();
p.say(“Hello”);
}
}
public class Director extends Person {
public void say(String s){
System.out.println(“I’m the director”);
}
}
O que eu quis dizer é que NÃO HÁ VMI (Virtual Method Invocation)
Quando a chamada do metodo da Super classe feita em tempo de compilação chama o metodo da SubClasse em tempo de execução.
Ex:
public class Person {
public void say(String s){
System.out.println("I'm saying: " + s);
}
public static void main(String[] args) {
Person p = new Director();
p.say("Hello");
}
}
public class Director extends Person {
public void say(String s){
System.out.println("I'm the director");
}
}
Mas é obvio que não vai ser visivel, você criou quatro classes, no exemplo que balrog deu, a invocação pertence a mesma classe, sendo assim possivel invocar o método private.
Abraço…