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();
}
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
arti
c
le
) 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};
Interfaces encore
http://www.emi.ac.ma/~ntounsi/COURS/Java/TD/interf... 1 of 2
for (int i=0; i<2; i++)
p[i].print();
C'est ici l'intérêt principal du polymorphisme.
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
arti
c
le
) sans aucun lien conceptuel
qui sont "interchangeables".
Interfaces encore
http://www.emi.ac.ma/~ntounsi/COURS/Java/TD/interf... 2 of 2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !