Bonjour à toutes et à tous,
J'ai le code suivant:
L'exécution de ce code me révèle une erreur de compilation au niveau de la ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class A{ void jouer() throws Exception{throw new Exception();} } class B extends A{ void jouer(){ System.out.println("Hello"); } } class Tester{ public static void main(String[] args){ A a = new B(); a.methode(); } }
C'est à dire qu'il faut entourer cette instruction avec un bloc de try/catch!a.methode();
Je me demande pourquoi puisque la méthode jouer qui va être invoqué c'est celle de l'objet B et non pas de la classe mère (c'est un polymorphisme si je ne me trompe pas, nn ).... Et puisque la signature de la méthode jouer de la classe B ne contient pas le throws Exception alors pourquoi faut-il faire le try/catch?
J'espère que vous m'avez compris et merci à l'avance!
Partager