Interfaces encore Programmation par les Objets en Java Travaux Pratiques Najib Tounsi Interfaces encore. Soit l'interface: interface Printer { // Interface pour imprimer un objet public void print(); } 1) Implémenter cet interface dans la classe Article (cf Cours). Rajouter à Article la méthode public void print(){ System.out.printf("(%d, %s, %f, %d)\n",numero, designation, prixHT, qte); } Faire de même dans la classe Point. public void print(){ System.out.printf("(%d, %d)\n",x,y); } 2) Tester avec la séquence d'instructions : Point point = new Point(1,2); Article article = new Article (2,"chemise",15.5, 45); point.print(); article.print(); Rien de spécial ici. Tester ensuite comme suit: Printer point = new Point(1,2); Printer article = new Article (2,"chemise",15.5, 45); point.print(); article.print(); Commenter. (Autre aspect du polymorphisme, non lié à l'héritage: deux objets (point et article) de même type (interface Printer ici) et qui exécutent l'opération print() de cette interface, mais de façon différente.) 3) Tester aussi avec la séquence suivante : Point point = new Point(1,2); Article article = new Article (2,"chemise",15.5, 45); Printer [] p = {point, article}; http://www.emi.ac.ma/~ntounsi/COURS/Java/TD/interf... 1 of 2 Interfaces encore for (int i=0; i<2; i++) p[i].print(); C'est ici l'intérêt principal du polymorphisme. 4) Tester aussi la séquence d'instructions : Printer point = new Point(1,2); Printer article = new Article (2,"chemise",15.5, 45); point = article; point.print(); // print de Article bieb sûr! Constater la différence entre point.print() de 2). La chose à noter ici, c'est qu'on a deux objets (point et article) sans aucun lien conceptuel qui sont "interchangeables". http://www.emi.ac.ma/~ntounsi/COURS/Java/TD/interf... 2 of 2