@Alex10214

Чем отличается наследование в ооп от протипированного наследования?

вопрос: Чем отличается наследование в ооп от протипированного наследования?
Задали такой вопрос на собесе. Не смог ответить. Может кто-то ответить плюс минус простыми словами?
  • Вопрос задан
  • 443 просмотра
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Вопрос некорректный, различий не может быть, так как прототипы - разновидность ООП.

Отличие с классами есть:
Прототипное программирование # Сравнение с класс-о...
В языках, основанных на понятии «класс», все объекты разделены на два основных типа — классы и экземпляры. Класс определяет структуру и функциональность (поведение), одинаковую для всех экземпляров данного класса. Экземпляр является носителем данных — то есть обладает состоянием, меняющимся в соответствии с поведением, заданным классом.

Сторонники прототипного программирования часто утверждают, что языки, основанные на классах, приводят к излишней концентрации на таксономии классов и на отношениях между ними. В противоположность этому, прототипирование заостряет внимание на поведении некоторого (небольшого) количества «образцов», которые затем классифицируются как «базовые» объекты и используются для создания других объектов. Многие прототип-ориентированные системы поддерживают изменение прототипов во время выполнения программы, тогда как лишь небольшая часть класс-ориентированных систем (например, Smalltalk, Ruby) позволяет динамически изменять классы.

Хотя подавляющее большинство прототип-ориентированных систем основаны на интерпретируемых языках с динамической типизацией, технически возможно добавить прототипирование и в языки со статической проверкой типов. Язык Omega является одним из примеров такой системы.
Ответ написан
DollyPapper
@DollyPapper
При классовом подходе у вас есть класс и его экземпляр. Состав полей и цепочка наследования при этом задана жестко во время написания. В прототипной модели у вас нет классов, есть обьекты прототипы которые могут динамически мутировать по ходу выполнения программы. Мутация означает, что мы можем изменять не только значения атрибутов обьекта, но и сам состав этих атрибутов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы