Le problème éventuel est le conflit de nom, si par exemple, la classe euro_compte utiliser les mêmes méthodes dépôt et retrait que la classe compte.

Malheureusement, il n'est pas possible (pour l'instant, en Ocaml) de renommer les méthodes.

Le choix des noms est important en style objet, car la programmation par ``envoi de messages'' attache un sémantique implicite à chaque message et les noms sont bien plus que des conventions syntaxiques. Par exemple, un object imprimable aura naturellement une méthode ``print'', sinon il ne pourra pas être imprimé par d'autres classes définies en librairie.

La solution la plus simple consiste à prévoir ce conflit et choisir des noms différents pour chacune des méthodes.
class euro_compte = object
  val sole_en_euro = ...
  method dépôt_en_euro = ...
end
Une autre solution, plus modulaire, sinon plus élégante, permet toutefois de partager le compte en euro et en francs. Mais il faut pour cela prévoir le conflit, et utiliser un motif en peigne (cf introduction) avec une classe génératrice, où les noms sont privés, et des classes dérivées où les noms sont figés. (On choisi une version simplifié, mais on imaginera une version raffinée de la classe ou le corps de la méthode 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;;
Pour la classe en franc, on choisit des nom précis
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;;
Pour de façon similaire en évitant les conflits de noms:
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;;
On peut alors mélanger les deux comptes:
class compte_mixte = object
  inherit compte_en_franc
  inherit compte_en_euro
end;;
On vérifie que la class 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):
let cm = new compte_mixte;;
let soldes() = (cm # dépôt_en_franc 0., cm # dépôt_en_euro 0.);;
soldes();;
- : float * float = 3.000000, 4.000000
cm # dépôt_en_franc 1.;;
- : float = 4.000000
soldes();;
- : float * float = 4.000000, 4.000000
cm # dépôt_en_euro 2.;; 
- : float = 6.000000
soldes();;
- : float * float = 4.000000, 6.000000
NOTE: On a ainsi résolu le problème de façon modulaire (partage du code), mais au pris d'un motif en peigne, qu'il a fallu concevoir a priori.