Multi-méthodes

Pour ces excercices, vous aurez besoin de la classe java.lang.Class et du paquetage java.lang.reflect.

Question 1

Construire un programme qui prend en paramètre un nom de classe et qui affiche :
Tester sur une classe de l'API Java.

Question 2

Utiliser la version 1 de Dessin, pour créer une forme et lui appliquer une méthode, la classe de la forme et la méthode à appliquer étant passées en paramètres de la ligne de commande. (Solution).

Question 3

On veut maintenant ajouter la fonctionnalité suivante : tester si deux formes s'intersectent. Proposer les modifications à apporter. Comparer avec la version 3.0.

Question 4

On veut maintenant pouvoir ajouter de nouvelles formes sans modifier le code existant.
Expliquer pourquoi la solution proposée dans la version 3.1beta ne fonctionne pas.
Proposer une solution (sans utiliser la reflexion). Comparer avec la solution proposée dans la version 3.1. Quel est son défaut ?
Proposer une solution en utilisant la reflexion. Comparer avec la version 3.2.

Question optionnelle

Pourquoi est-ce que l'instruction

resultat = (Boolean) selecteur("intersecte", this, tab_f);

dans la méthode intersecte(Forme f) de FormeAbstraite ne provoque-t-elle pas de boucle infinie en rappelant intersecte(Forme f)?