Alors je vais tenter de t'éclairer sur ces notions qui peuvent être très subtiles pour les novices et qui sont souvent mal expliquées.
En Java tu ne peux pas faire d'héritage multiple, pour palier a cette limitation on utilise le design qui se nomme Composition par le biais des interfaces qui servent à décrire un comportement, une relation de type "can-do" (un poisson PEUT nager), à l'opposé de l'héritage de classe qui décrit une relation de type "is" (une Voiture EST un Véhicule).
L'héritage de classe est pertinent dans certains cas mais si il est mal utilisé, il en découle très vite des incohérences, c'est un système rigide et dépendant, à l'instar de la composition ou on peut créer des objets plus spécifiques et non dépendants d'autre classes.
Pour illustrer les limites de l'héritage on peut prendre le problème de l'ornithorynque qui se trouve à la croisière de plusieurs branches étant à la fois un mammifère et un ovipare (allaite et pond des oeufs)
dans ce cas il faudra rajouter une classe spécifique supplémentaire et a chaque fois qu'on rencontre un cas différent il faudra alourdir en ajoutant une classe.
petit schéma:
maintenant la même chose en utilisant les interfaces:
On voit que le système ne sera par surchargé de classes, les classes existantes implementeront le comportement necessaires pour l'objet en particulier:

Message édité le 17 juin 2020 à 08:11:27 par mov_eax_0