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

Хочу спросить у вас правильно ли я понимаю термины в ООП

Добавлено: 2017.01.15, 01:33
webplus
Всем привет!
Хочу спросить у вас правильно ли я понимаю термины в ООП:
Полиморфизм - это абстрактный класс, который может содержать методы без логики, которые должны быть обязательно в классе в котором мы наследуем абстрактный класс и абстрактный класс может еще иметь метод с логикой
Интерфейс - это класс в котором описаны методы без логики, которые должны быть обязательно в классе в котором мы будем наследовать интерфейс.
Отличия абстрактного от интерфейса в том что в абстрактном может быть метод с логикой, а в интерфейсе только описаны методы без логики, которые должны быть обязательно в классе в котором мы (типа наследуем но (implements)) интерфейс.

Инкапсуляция - это скрытие свойств в классе, через private

Наследование - это базовый класс с методами и свойствами наследуется другим классом.

Re: Хочу спросить у вас правильно ли я понимаю термины в ООП

Добавлено: 2017.01.15, 02:33
samdark
Близко, но не правильно.

Если по-простому, то как-то так:

Интерфейс — именованная группа описаний методов. Класс может соответствовать одному или нескольким интерфейсам.

Полиморфизм — возможность использовать любую из реализаций интерфейса или любого наследника базового класса. Коду всё равно, что это за объект, если он реализует интерфейс, с которым он работает.

Отличия абстрактного класса от интерфейса — гарантированное отсутствие реализации в интерфейсе, возможность реализовать несколько интерфейсов в одном классе.

Инкапсуляция — сокрытие внутренних данных и логики работы класса или группы классов. Наружу должно торчать только то, что нужно. Как оно работает и хранится внешнему миру не важно.

Наследование — использование как базы методов и свойств другого класса.

Re: Хочу спросить у вас правильно ли я понимаю термины в ООП

Добавлено: 2017.01.15, 07:08
ElisDN
webplus писал(а): 2017.01.15, 01:33Хочу спросить у вас правильно ли я понимаю термины в ООП...
Следует разделять по уровням:

- "переменная", "метод", "указатель" - это общие низкоуровневые понятия для многих языков и изучаемые до того, как написать код.

- "class", "private", "foreach" - синтаксические конструкции, необходимые чтобы написать код на выбранном языке. В каждом языке они свои.

- "процедурное программирование", "функциональное программирование", "ООП" - подходы к организации кода и мышления (парадигмы). Различие, в основном, смысловое. Можно хоть программировать функционально в ООП, хоть имитировать ООП в процедурных языках, хоть объекты обрабатывать процедурно. От языка уже практически не зависит.

- "обобщение (абстракция)", "абстракция типов (полиморфизм)", "сокрытие данных и информации (инкапсуляция)", "наследование типов (наследование)" - универсальные высокоуровневые смысловые принципы, применимые ко многим языкам и парадигмам. Да и не только к программированию. Даже от профессии не зависят.

Конкретно в ООП можете поупражняться с этим в http://www.elisdn.ru/oop-week и дополнить http://www.elisdn.ru/blog/101/oop-week-three-answers.