Parler de carré ou de rectangle, revient à parler de formes géométriques particulières. Dans de telles circonstances j'utiliserais une fabrique de classe.Si tes classes modélisent des positions ou des longueurs, alors NON, Carré n'hérite pas de Rectangle (car rien n'impose le respect des contraintes, à part le nom de la classe).
Néanmoins, il faudrait savoir de quel énoncé on part, et je suis d'accord qu'en fonction de ce qui y est décrit l'héritage fonctionne ou non.
Dois je comprendre que si on modifirait quelque peu l'énoncé, l'héritage est une forme de modélisation qui montre rapidement ses limites, je n'ai pas dit le contraire. J'ai voulu démontrer qu'en prenant un type d'énoncé LSP s'applique correctement.
Si on écrirait une méthode pour faire varier les angles au niveau du parallèlogramme, on commet exactement les même erreurs qu'en parlant de longueur et de largeur. A ce moment là carré devient losange, il n'est même pas question de parler de rectangle. Je partage l'avis de souviron34, que certains modèles de pensées informatiques nous formattent sur nos comportements.
Partager