Interfaces encore

publicité
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
Téléchargement