1.2.2 Héritage
L'héritage est un principe de la programmation
orientée Objet], permettant entre autres la
réutilisabilité et l'adaptabilité des objets. Elle se
nomme ainsi car le principe est en quelque sorte le même que celui d'un
arbre généalogique. Ce principe est basé sur des classes
dont les « filles » héritent des caractéristiques de
leur(s) « mère(s) ». Chaque classe possède des
attributs et/ou des méthodes qui lui sont propres. Lorsqu'une classe
fille hérite d'une classe mère, elle peut alors utiliser ses
attributs et ses méthodes [Dev]. Et la figure 1.2 montre la notation UML
et Java de ce concept.
|
class Point {
public void initialise (int abs, int ord)
{
x = abs ;y = ord ; }
public void deplace (int dx, int dy) {
x += dx ; y += dy ;
}
public void affiche (){
System.out.println ("Je suis en " + x +
" " + y) ;
}
private int x, y ;}
|
class Pointcol extends Point {
public void colore (bytecouleur){ this.couleur = couleur
; }
private byte couleur ;
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Figure 1.2- Héritage.
1.2.3 Polymorphisme
Le polymorphisme, conséquence directe de
l'héritage, permet à un même message, dont l'existence est
prévue dans une superclasse, de s'éxécuter
différemment, selon que l'objet qui le reçoit est d'une
sous-classe ou d'une autre. Cela permet à l'objet responsable de l'envoi
du message de ne pas avoir à se préoccuper dans son code de la
nature ultime de l'objet qui le reçoit et donc de la façon dont
il l'exécutera.
Exemple :
abstract class Forme { abstract float aire() ; }
|
class Carre extends Forme{ float cote;
float aire() {
return cote *
cote;
|
class Cercle extends Forme{ float rayon;
float aire() {
return Math.PI*rayon*rayon;
|
|
|
|
}
|
}
|
|
|
}
|
|
}
|
Figure 1.3- Polymorphisme.
|