Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

 

 


Инкапсуляция

Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.

Т.е. при использовании класса достаточно знать функции, которые он выполняет, не задумываясь как внутри класса производится обработка и вычисления.

Можно привести аналогию с реальным миром: пользуясь сотовым телефоном человек не задумывается что происходит когда он начинает звонок и разговор с другим абонентом. Для него достаточно знать, что набрав номер телефона он инициирует звонок и может разговаривать используя микрофон для передачи голоса, и динамик для того, чтобы услышать говорящего.

Полиморфизм

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Если взять пример из реального мира: Производится множество различных моделей сотовых телефонов, но интерфейс взаимодействия с пользователем у них практически одинаковый.

Абстракция данных

Абстракция данных — подход к обработке данных по принципу чёрного ящика. Данные обрабатываются функцией высокого уровня с помощью вызова функций низкого уровня.

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

Фундаментальная идея состоит в разделении несущественных деталей реализации подпрограммы и характеристик, существенных для корректного ее использования. Такое разделение может быть выражено через специальный «интерфейс», сосредотачивающий описание всех возможных применений программы.

Под «интерфейсом» понимается некий набор методов и средств доступа к данным класса, которые могут использоваться извне. Например, класс для генерации случайных чисел содержит метод, при вызове которого возвращается произвольное случайное число. Доступа к алгоритму генерации у программиста нет, но есть возможность вызвать метод, который возвратит результат его работы. Этом и заключается основной принцип абстрации – есть метод, который выполняет определённый алгоритм, при этом, логика работы самого алгоритма скрыта.