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 passetil 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
à 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 passetil 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
