La herencia, el polimorfismo y la encapsulación son las tres características más distintas e importantes de la POO, y de ellas, la herencia tiene una alta estadística de uso en estos días. Estoy aprendiendo JavaScript, y aquí, todos dicen que tiene herencia prototípica, y la gente en todas partes dice que es algo muy diferente de la herencia clásica.
Sin embargo, no puedo entender cuál es su diferencia desde el punto de vista práctico. En otras palabras, cuando define una clase base (prototipo) y luego deriva algunas subclases de ella, ambos tienen acceso a funcionalidades de su clase base, y pueden aumentar las funciones en las clases derivadas. Si consideramos que lo que dije es el resultado previsto de la herencia, ¿por qué debería importarnos si estamos usando una versión prototípica o clásica?
Para aclararme más, no veo diferencia en la utilidad y los patrones de uso de la herencia prototípica y clásica. Esto hace que no me interese saber por qué son diferentes, ya que ambos resultan en lo mismo, OOAD. ¿Cuán prácticamente (no teóricamente) la herencia prototípica es diferente de la herencia clásica?