Всем привет!
Хочу спросить у вас правильно ли я понимаю термины в ООП:
Полиморфизм - это абстрактный класс, который может содержать методы без логики, которые должны быть обязательно в классе в котором мы наследуем абстрактный класс и абстрактный класс может еще иметь метод с логикой
Интерфейс - это класс в котором описаны методы без логики, которые должны быть обязательно в классе в котором мы будем наследовать интерфейс.
Отличия абстрактного от интерфейса в том что в абстрактном может быть метод с логикой, а в интерфейсе только описаны методы без логики, которые должны быть обязательно в классе в котором мы (типа наследуем но (implements)) интерфейс.
Инкапсуляция - это скрытие свойств в классе, через private
Наследование - это базовый класс с методами и свойствами наследуется другим классом.
Хочу спросить у вас правильно ли я понимаю термины в ООП
Хочу спросить у вас правильно ли я понимаю термины в ООП
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Хочу спросить у вас правильно ли я понимаю термины в ООП
Близко, но не правильно.
Если по-простому, то как-то так:
Интерфейс — именованная группа описаний методов. Класс может соответствовать одному или нескольким интерфейсам.
Полиморфизм — возможность использовать любую из реализаций интерфейса или любого наследника базового класса. Коду всё равно, что это за объект, если он реализует интерфейс, с которым он работает.
Отличия абстрактного класса от интерфейса — гарантированное отсутствие реализации в интерфейсе, возможность реализовать несколько интерфейсов в одном классе.
Инкапсуляция — сокрытие внутренних данных и логики работы класса или группы классов. Наружу должно торчать только то, что нужно. Как оно работает и хранится внешнему миру не важно.
Наследование — использование как базы методов и свойств другого класса.
Если по-простому, то как-то так:
Интерфейс — именованная группа описаний методов. Класс может соответствовать одному или нескольким интерфейсам.
Полиморфизм — возможность использовать любую из реализаций интерфейса или любого наследника базового класса. Коду всё равно, что это за объект, если он реализует интерфейс, с которым он работает.
Отличия абстрактного класса от интерфейса — гарантированное отсутствие реализации в интерфейсе, возможность реализовать несколько интерфейсов в одном классе.
Инкапсуляция — сокрытие внутренних данных и логики работы класса или группы классов. Наружу должно торчать только то, что нужно. Как оно работает и хранится внешнему миру не важно.
Наследование — использование как базы методов и свойств другого класса.
Нравится Yii? Давайте сделаем его лучше!.
Re: Хочу спросить у вас правильно ли я понимаю термины в ООП
Следует разделять по уровням:
- "переменная", "метод", "указатель" - это общие низкоуровневые понятия для многих языков и изучаемые до того, как написать код.
- "class", "private", "foreach" - синтаксические конструкции, необходимые чтобы написать код на выбранном языке. В каждом языке они свои.
- "процедурное программирование", "функциональное программирование", "ООП" - подходы к организации кода и мышления (парадигмы). Различие, в основном, смысловое. Можно хоть программировать функционально в ООП, хоть имитировать ООП в процедурных языках, хоть объекты обрабатывать процедурно. От языка уже практически не зависит.
- "обобщение (абстракция)", "абстракция типов (полиморфизм)", "сокрытие данных и информации (инкапсуляция)", "наследование типов (наследование)" - универсальные высокоуровневые смысловые принципы, применимые ко многим языкам и парадигмам. Да и не только к программированию. Даже от профессии не зависят.
Конкретно в ООП можете поупражняться с этим в http://www.elisdn.ru/oop-week и дополнить http://www.elisdn.ru/blog/101/oop-week-three-answers.