Ho due domanda su questo codiceConfondere "l'override un metodo privato"
public class Override {
private void f() {
System.out.println("private f()");
}
public static void main(String[] args) {
Override po = new Derived();
po.f();
}
}
class Derived extends Override {
public void f() {
System.out.println("public f()");
}
}
/*
* Output: private f()
*/// :~
1) Come è la funzione f è visibile sul riferimento di Override Po;
2) Perché è uscita "f privato()"
Ma come un riferimento con un oggetto di sottoclasse può chiamare un metodo privato di una super classe ??? è un insetto??? –
No, questo non è un bug, questo è esattamente come dovrebbe funzionare. – Jesper
ma non è questo che viola le regole di ereditarietà e l'associazione tardiva –