Héritage
Les classes POINT_CARTESIEN et POINT_POLAIRE implantent toutes les primitives retardées de POINT et sont donc concrètes et instanciables.


POINT_CARTESIEN fait de x et y deux attributs, d et alpha devenant des fonctions. POINT_POLAIRE fait l'inverse.
Ces deux classes héritent de la méthode is_origin, définie dans POINT, sans changer son implantation. Celle_ci a pu être définie dans POINT, puisque les types des variables x et y étaient connus, bien que 1'implantation ne l'était pas encore. Ces deux classes disposent donc d'une routine is_origin, dont le code a été défini et implanté dans POINT, sans surcoût aucun, au lieu d'avoir eu à les implanter elles_mêmes. Bien entendu, sur ce petit exemple, le gain en termes de lignes de code économisées est faible, mais sur des applications de plusieurs centaines de classes, ce type d'héritage permet de réutiliser un volume important de code, ce qui facilite fortement le développement et le débogage. C'est la principale justification de l'héritage et de bonnes bibliothèques en font un usage judicieux.
On peut noter que l'implantation de is_origin n'est pas très efficace lorsque l'on considère la classe POINT_POLAIRE. En effet, is_origin utilise x et y qui, dans POINT_POLAIRE sont calculés. Ceci n'est pas gênant sur cet exemple, mais pourrait être important en termes de performances sur un véritable programme.
Il est donc possible en Eiffel de redéfinir une routine dont l'implantation héritée n'est pas efficace ou n'est plus correcte (car incomplète, par exemple) dans le contexte de la classe héritière. Ceci se ferait de la façon suivante
