Corrige type examen module poo univ tlemcen promo 2015 2016 tchi drive
Université A Belka? d Tlemcen Faculté des Sciences Département d'Informatique Corrigé-type de l'Examen ?nal de Programmation Objet Année universitaire - e année licence informatique Programmation Objet Jeudi janvier Durée h Questions de cours pts ActionListener est une interface pt Explication ImageViewer implémente implements l'interface ActionListener Pour qu'il n'y ait pas d'erreur à la compilation la classe ImageViewer doit contenir la re dé ?nition de la méthode actionPerformed héritée de ActionListener pt Explication ImageViewer n'étant pas une classe abstraite pas de abstract elle doit obligatoirement re dé ?nir toutes les méthodes abstraites qu'elle a héritées sinon le compilateur a ?chera error ImageViewer is not abstract and does not override abstract method actionPerformed ActionEvent in ActionListener Il n'y a pas de classe ActionAdapter dans l'API de Java car ActionListener n'a qu'une seule méthode pts Explication Les classes abstraites Adapter héritent implémentent l'interface Listener correspondante et re dé ?nissent toutes les méthodes héritées avec un corps vide un bloc d'instructions vide Quand une classe hérite de l'Adapter cela lui permet d'implémenter indirectement l'interface Listener et redé ?nir uniquement les méthodes dont elle a besoin Les autres méthodes héritées étant déjà dé ?nies dans l'Adapter elles ne sont plus abstraites et le compilateur ne se plaindra pas Dans le cas de ActionListener il y a une seule méthode à redé ?nir Une classe ActionAdapter ne servirait donc à rien Exercice pts Il y a erreurs Ligne erreur à la compilation Explication super est un appel au constructeur hérité il ne peut se faire que dans la première ligne d'un constructeur pas dans une autre méthode Ligne erreur à la compilation Explication La classe B hérite les méthodes de A et de Object super c est un appel à la méthode c héritée Or il n'y a pas de méthode c dans la classe A ni dans Object Ligne erreur à la compilation Explication a est déclaré comme une référence d'un objet de type B On ne peut pas y mettre la référence d'un objet de type A car A n'est pas un sous-type de B Ligne erreur à la compilation Explication a c est un appel à la méthode c de a Or le type déclaré statique de a est A et A n'a pas de méthode c Ligne erreur à la compilation Explication b c est un appel à la méthode c de b Or le type déclaré statique de b est A et A n'a pas de méthode c Même si le type dynamique de l'objet référencé par b est B qui a une méthode c le compilateur ne l'accepte pas car il n'examine que les types statiques Ligne erreur à l'exécution Explication B a est une tentative de transtypage cast de l'objet a du type statique A vers le type B B étant un sous-type de A le compilateur l'accepte car il n'examine que les types statiques Cependant l'objet référencé par a est de type dynamique A pas B Le transtypage échouera donc à l'exécution en provoquant une ClassCastException A cannot
Documents similaires
-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 11, 2022
- Catégorie Business / Finance
- Langue French
- Taille du fichier 29.3kB