euro_compte
utiliser les mêmes méthodes dépôt
et retrait
que la classe compte
.
class euro_compte = object val sole_en_euro = ... method dépôt_en_euro = ... end |
dépôt
est suffisamment
gros pour justifier le partage).
class compte = object val mutable solde = 0. method private dépôt x = solde <- solde +. x; solde end;; |
class type compte_français = object method dépôt_en_franc : float -> float end class compte_en_franc : compte_français = object (self) inherit compte method dépôt_en_franc = self#dépôt end;; |
class type compte_européen = object method dépôt_en_euro : float -> float end class compte_en_euro : compte_européen = object (self) inherit compte method dépôt_en_euro = self#dépôt end;; |
class compte_mixte = object inherit compte_en_franc inherit compte_en_euro end;; |
compte_mixte
comporte bien deux variables
d'instances soldes cachées distinctes:
il n'y a pas d'override entre les champs (variables ou méthodes) cachés.
(Dans cette version simplifié du compte, on effectue un dépôt vide pour lire
la valeur du compte):
|