Dans ton exemple la méthode foo doit pouvoir prendre en paramètre n’importe quel sous-type de A en respectant le contrat (sur A) de la méthode formatted, donc si formatted est implémentée correctement à mon avis on est bon pour le principe de substitution.
Si tu crée un nouveau sous type de A, ta fonction ne compile plus.
Le fais que du code utilisateur soit conscient des sous type de ses paramètres (ou de ce qu'il reçoit d'une fonction) empêche la substitution.
Mais tu veux ptete parler du principe d’encapsulation ?
On parle de typage et pas de l'état interne des objets donc je dirais que non.
[^] # Re: sealed ?
Posté par barmic 🦦 . En réponse au journal La plus belle ligne de code. Évalué à 5.
Si tu crée un nouveau sous type de A, ta fonction ne compile plus.
Le fais que du code utilisateur soit conscient des sous type de ses paramètres (ou de ce qu'il reçoit d'une fonction) empêche la substitution.
On parle de typage et pas de l'état interne des objets donc je dirais que non.
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll