Спадщина, поліморфізм та інкапсуляція - це три найвиразніші, важливі особливості ООП, і від них успадкування в наші дні має високу статистику використання. Я вивчаю JavaScript, і тут вони всі кажуть, що він має прототипне успадкування, і люди скрізь кажуть, що це щось набагато відмінне від класичного успадкування.
Однак я не можу зрозуміти, в чому їх відмінність з точки зору практичного використання? Іншими словами, коли ви визначаєте базовий клас (прототип), а потім отримуєте з нього деякі підкласи, ви обидва маєте доступ до функціоналітів базового класу, і ви можете розширювати функції на похідних класах. Якщо ми розглядаємо те, що я сказав, як намічений результат успадкування, то чому ми повинні турбуватися, якщо ми використовуємо прототипний чи класичний варіант?
Щоб зрозуміти себе більше, я не бачу різниці у корисності та моделях використання прототипічного та класичного успадкування. Це призводить до того, що я не маю інтересу дізнатися, чому вони різні, оскільки вони обидва призводять до одного і того ж, OOAD. Чим практично (не теоретично) прототипне успадкування відрізняється від класичного успадкування?