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

Обсуждаем, как правильно строить приложения
Ответить
Аватара пользователя
webplus
Сообщения: 336
Зарегистрирован: 2012.02.24, 22:05

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

Сообщение webplus »

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

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

Наследование - это базовый класс с методами и свойствами наследуется другим классом.
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark »

Близко, но не правильно.

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

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

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

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

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

Наследование — использование как базы методов и свойств другого класса.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

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

Сообщение 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.
Ответить