Инкапсуляция
Инкапсуляция достигается, когда объект сохраняет свое состояние закрытым, внутри класса. Другие объекты не имеют прямого доступа к этому состоянию. Вместо этого они могут вызывать только список открытых функций, называемых методами.
Абстракция
В ООП программы часто бывают чрезвычайно большими, и отдельные объекты многократно общаются между собой. Поэтому поддержание такого рода кодовой базы в течение многих лет может быть сложной задачей. Абстракция это принцип, призванный облегчить эту проблему. Применение абстракции означает, что каждый объект должен предоставлять для общения только механизм высокого уровня. Другими словами, пользователю будут отображаться на экран только основные детали. В Java абстракция достигается с помощью интерфейсов и абстрактных классов.
Наследование
Наследование позволяет вам создать (дочерний) класс, производный от другого (родительского) класса, чтобы сформировать иерархию. Дочерний класс может повторно использовать поля и методы родительского класса, а также может реализовывать свои собственные уникальные поля и методы.
Полиморфизм
Полиморфизм относится к способности языков ООП эффективно различать сущности с одинаковыми именами. Обычно определяется родительский интерфейс для повторного использования. Он описывает общие методы, затем каждый дочерний класс реализует собственную версию этих методов. В реальной жизни примером полиморфизма может быть то, как один человек проявляет разное поведение в разных ситуациях: мужчина одновременно может быть отцом, мужем и служащим. Полиморфизм позволяет выполнять одно действие разными способами. Другими словами, он позволяет определять один интерфейс и иметь множество реализаций.
Зачем использовать ООП?
Объектно-ориентированное программирование имеет несколько преимуществ перед процедурным программированием:
- ООП быстрее и проще в исполнении;
- ООП обеспечивает чистую структуру для программ;
- ООП помогает сохранять код "сухим" (DRY - «Не повторяй себя») и делает код проще для поддержки, модификации и отладки;
ООП делает возможным создание полностью повторно используемых приложений с меньшим кодом и временем разработки.
ООП используется во многих сферах разработки. В частности, объектно-ориентированный подход рассматривается во всех основных курсах Школы программной инженерии - Основы программирования на Java, Основы веб-разработки, Основы программирования на Python.
Источник