L'héritage, le polymorphisme et l'encapsulation sont les trois caractéristiques les plus importantes et les plus distinctes de la POO, et d'après eux, l'héritage a de fortes statistiques d'utilisation de nos jours. J'apprends JavaScript, et ici, ils disent tous qu'il a un héritage prototypique, et les gens partout dans le monde disent que c'est quelque chose de très différent de l'héritage classique.
Cependant, je ne peux pas comprendre quelle est leur différence du point de vue pratique? En d'autres termes, lorsque vous définissez une classe de base (prototype) puis que vous en dérivez des sous-classes, vous avez tous deux accès aux fonctionnalités de votre classe de base et vous pouvez augmenter les fonctions sur les classes dérivées. Si nous considérons ce que j'ai dit être le résultat prévu de l'héritage, alors pourquoi devrions-nous nous soucier si nous utilisons une version prototypique ou classique?
Pour me clarifier davantage, je ne vois aucune différence dans l'utilité et les modèles d'utilisation de l'héritage prototypique et classique. Cela ne m'intéresse pas à savoir pourquoi ils sont différents, car ils aboutissent tous deux à la même chose, OOAD. En quoi l'héritage prototypique est-il pratiquement (théoriquement) différent de l'héritage classique?