Bonjour à toutes et à tous,

J'ai le code suivant:

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();
}
}
L'exécution de ce code me révèle une erreur de compilation au niveau de la ligne:

a.methode();
C'est à dire qu'il faut entourer cette instruction avec un bloc de try/catch!
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!