TestPolymorphisme.java
01 package fr.isae.geometry;
02 
03 /**
04  * Tester le polymorphisme et la liaison dynamique.
05  *
06  @author <a href="mailto:cregut@enseeiht.fr">Xavier Cregut</a>
07  @version 1.0
08  */
09 public class TestPolymorphisme {
10 
11     /** Methode principale */
12     public static void main(String args[]) {
13         // Creer et afficher un point p1
14         Point p1 = new Point(34);    // Est-ce autorise ? Pourquoi ?
15         p1.translater(10,10);  // Quel est le translater qui est execute ?
16         System.out.print("p1 = ");  p1.afficher ();  System.out.println ();
17                          // Qu'est ce qui est affiche ?
18 
19         // Creer et afficher un point nomme pn1
20         PointNomme pn1 = new PointNomme (3040"PN1");
21                          // Est-ce autorise ? Pourquoi ?
22         pn1.translater (10,10);  // Quel est le translater qui est execute ?
23         System.out.print ("pn1 = ");  pn1.afficher();  System.out.println ();
24              // Qu'est ce qui est affiche ?
25 
26         // Definir une poignee sur un point
27         Point q;
28 
29         // Attacher un point a q et l'afficher
30         q = p1;    // Est-ce autorise ? Pourquoi ?
31         System.out.println ("> q = p1;");
32         System.out.print ("q = ");  q.afficher();  System.out.println ();
33             // Qu'est ce qui est affiche ?
34 
35         // Attacher un point nomme a q et l'afficher
36         q = pn1;    // Est-ce autorise ? Pourquoi ?
37         System.out.println ("> q = pn1;");
38         System.out.print ("q = ");  q.afficher();  System.out.println ();
39             // Qu'est ce qui est affiche ?
40 
41         // Definir une poignee sur un point nomme
42         PointNomme qn;
43 
44         // Attacher un point a q et l'afficher
45         qn = p1;  // Est-ce autorise ? Pourquoi ?
46         System.out.println ("> qn = p1;");
47         System.out.print ("qn = ");  qn.afficher();  System.out.println ();
48             // Qu'est ce qui est affiche ?
49 
50         // Attacher un point nomme a qn et l'afficher
51         qn = pn1;  // Est-ce autorise ? Pourquoi ?
52         System.out.println ("> qn = pn1;");
53         System.out.print ("qn = ");  qn.afficher();  System.out.println ();
54             // Qu'est ce qui est affiche ?
55 
56         double d1 = p1.distance (pn1);  // Est-ce autorise ? Pourquoi ?
57         System.out.println ("distance = " + d1);
58 
59         double d2 = pn1.distance (p1);  // Est-ce autorise ? Pourquoi ?
60         System.out.println ("distance = " + d2);
61 
62         double d3 = pn1.distance (pn1);  // Est-ce autorise ? Pourquoi ?
63         System.out.println ("distance = " + d3);
64   
65         System.out.println ("> qn = q;");
66         qn = q;  // Est-ce autorise ? Pourquoi ?
67         System.out.print ("qn = ");  qn.afficher();  System.out.println ();
68 
69         System.out.println ("> qn = (PointNomme) q;");
70         qn = (PointNommeq;  // Est-ce autorise ? Pourquoi ?
71         System.out.print ("qn = ");  qn.afficher();  System.out.println ();
72 
73         System.out.println ("> qn = (PointNomme) p1;");
74         qn = (PointNommep1;  // Est-ce autorise ? Pourquoi ?
75         System.out.print ("qn = ");  qn.afficher();  System.out.println ();
76     }
77 }