erreurs de compilation non signalées
Bonjour, sur un livre de tests java voici un test
Code:
1 2 3 4 5 6 7 8 9
| abstract class Bird {
protected Bird() {
System.out.print("Wow-");
}
private final void fly() {
System.out.println("Bird");
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class Pelican extends Bird {
public Pelican() {
System.out.print("Oh-");
}
protected void fly() {
System.out.println("Pelican");
}
static void main(String[] args) {
var chirp = new Pelican();
chirp.fly();
}
} |
private final void fly() {System.out.println("Bird");} : cette méthode ne peut être appelée que depuis sa classe et ne peut pas être overridée dans une classe fille. Donc à quoi sert-elle ? et est-ce que private final est possible et ne soulève pas une erreur ?
dans la classe fille Pelican on a : protected void fly() { System.out.println("Pelican");}. Il semble justement que c'est un override de la méthode précédemment discutée. Ca ne soulève pas une erreur ?