Comment savoir quel constructeur va être appelé à la création de l’objet ? C’est à vous de passer les bonnes valeurs 
à  l’objet dès son instanciation (déclaration ou création). Dans l’exemple suivant, deux objets Ecran sont créés. Le 
premier l’est comme d’habitude : c’est le constructeur par défaut (sans paramètres) qui sera appelé. Le second prend 
trois paramètres entre parenthèses, comme si vous passiez des paramètres à une méthode : c’est le constructeur 
associé qui sera appelé. 
Programme obj8 
Var 
// Appel implicite à Ecran() 
o1:Ecran 
// Appel implicite à Ecran(t,mq,mdl) 
o2:Ecran("LCD","LG","L1915S") 
Début 
o1.affiche_modèle() // INCONNU 
o2.affiche_modèle() // L1915S 
Fin
À  l’exécution  sans  avoir  rien  demandé,  les  deux  messages  au  sein  des  constructeurs  sont  affichés,  les  attributs 
disposent déjà de valeurs, placées là par les constructeurs. 
Avec une allocation dynamique, c’est pareil : 
Programme obj9 
Var 
p_oEcran :pointeur sur Ecran 
Début 
p_oEcran←nouveau Ecran("LCD","LG","L1915S") 
p_oEcran->affiche_modèle() // L1915S 
... 
Fin
c. L’héritage 
Que se passe­t­il lorsque vous instanciez un objet d’une classe dérivée ? 
q Si  la  classe  dérivée  n’a  pas  de  constructeur,  c’est  celui  de  la  superclasse  qui  est  appelé,  si  c’est possible 
(paramètres identiques par exemple). 
q Si la classe dérivée dispose d’un constructeur, c’est lui qui est appelé. 
q Par défaut si le constructeur d’une classe dérivée est présent, le constructeur de la superclasse n’est pas 
appelé. C’est à vous d’y faire appel explicitement. 
Classe A 
... 
Constructeur A() 
Début 
Afficher "Je suis A" 
Fin 
... 
FinClasse 
 
Classe B hérite de A 
... 
Constructeur B() 
Début 
Afficher "Je suis B" 
Fin 
... 
FinClasse 
 
Programme obj10 
Var 
o1 :A 
o2 :B 
Début 
- 2 -
© ENI Editions - All rigths reserved - Jonifar lina
209
Précédent

- 209/220

Suivant