Страница 1 из 1

К основным принципам ООП относят: инкапсуляцию, наследование, полиморфизм.

Добавлено: Вс апр 08, 2018 9:47 pm
Zenitchik
К основным принципам ООП относят: инкапсуляцию, наследование, полиморфизм.


Слишком вольное обобщение.
Скажем, в VB6.0 есть классы и полиморфизм, но нет наследования.
В JavaScript - нет классов (с некоторых пор есть, но это сахар над прототипами), но есть наследование, вместо полиморфизма - утиная типизация, а инкапсуляция возможна только на замыканиях (и вообще говоря, не поощряется - принцип JS: хочешь, чтобы значение свойства не менялось - не меняй его).
Про Lua уж молчу...

Общие черты всех известных мне типов ООП это: хранение в переменных ссылок на объекты, а не самих объектов; наличие у объектов полей и методов.
При этом методы могут физически относиться к классу, к прототипу или к самому объекту - в зависимости от парадигмы языка программирования.

Re: К основным принципам ООП относят: инкапсуляцию, наследование, полиморфизм.

Добавлено: Пн апр 09, 2018 8:10 am
admin
В учебниках по Паскалю пишут именно о 3 принципах.

Re: К основным принципам ООП относят: инкапсуляцию, наследование, полиморфизм.

Добавлено: Пн апр 09, 2018 10:52 am
Zenitchik
В учебниках по Си - тоже. Но я только что продемонстрировал, что они, мягко говоря, не универсальны.
Универсально понятие объекта у которого есть состояние (поля) и интерфейс (свойства, методы, события).
Кажется, универсально использование для объектных переменных ссылочного типа, но не рискну утверждать, что ни в одном языке не поступают иначе.