L’héritage
CHAPITRE 12
252
On notera que l’appel affiche dans la méthode affichec est en fait équivalent à :
courant.affiche
Autrement dit, il applique la méthode affiche à l’objet (de type Pointcol) ayant appelé la
méthode affichec.
Nous pouvons procéder de même pour définir dans Pointcol une nouvelle méthode d’initialisation nommée initialisec, chargée d’attribuer les coordonnées et la couleur à un
point coloré :
méthode initialisec (entier x, entier y, entier c)
{ initialise (x, y)
couleur := c
}
Une méthode d’initialisation d’un objet de type Pointcol
2.3 Exemple de programme complet
Voici un exemple complet de programme reprenant cette nouvelle définition de la classe
Pointcol et un exemple d’utilisation :
classe Point
{ méthode initialise (entier x, entier y) { abs := x ; ord := y }
méthode déplace (entier dx, entier dy) { abs := abs + dx ; ord := ord + dy ; }
méthode affiche { écrire «Je suis en », x, « », y }
entier abs, ord
}
classe Pointcol dériveDe Point
{ méthode colore (entier c) { couleur := c }
méthode affichec
{ affiche()
écrire « et ma couleur est : », couleur
}
méthode initialisec (entier x, entier y, entier c)
{ initialise (x, y)
couleur := c
}
entier couleur
}
Pointcol pc1, pc2
pc1 := Création Pointcol
pc1.initialise (3, 5)
pc1.colore (3)
pc1.affiche
// attention, ici affiche
pc1.affichec
// et ici affichec
pc2 := Création Pointcol
pc2.initialisec(5, 8, 2)
CHAPITRE 12
252
On notera que l’appel affiche dans la méthode affichec est en fait équivalent à :
courant.affiche
Autrement dit, il applique la méthode affiche à l’objet (de type Pointcol) ayant appelé la
méthode affichec.
Nous pouvons procéder de même pour définir dans Pointcol une nouvelle méthode d’initialisation nommée initialisec, chargée d’attribuer les coordonnées et la couleur à un
point coloré :
méthode initialisec (entier x, entier y, entier c)
{ initialise (x, y)
couleur := c
}
Une méthode d’initialisation d’un objet de type Pointcol
2.3 Exemple de programme complet
Voici un exemple complet de programme reprenant cette nouvelle définition de la classe
Pointcol et un exemple d’utilisation :
classe Point
{ méthode initialise (entier x, entier y) { abs := x ; ord := y }
méthode déplace (entier dx, entier dy) { abs := abs + dx ; ord := ord + dy ; }
méthode affiche { écrire «Je suis en », x, « », y }
entier abs, ord
}
classe Pointcol dériveDe Point
{ méthode colore (entier c) { couleur := c }
méthode affichec
{ affiche()
écrire « et ma couleur est : », couleur
}
méthode initialisec (entier x, entier y, entier c)
{ initialise (x, y)
couleur := c
}
entier couleur
}
Pointcol pc1, pc2
pc1 := Création Pointcol
pc1.initialise (3, 5)
pc1.colore (3)
pc1.affiche
// attention, ici affiche
pc1.affichec
// et ici affichec
pc2 := Création Pointcol
pc2.initialisec(5, 8, 2)
