ООП (Абстракція, Інкапсуляція, Наслідування, Поліморфізм)

Коротко і ясно про основні принципи ООП

Об'єктно орієнтоване програмування базується на трьох принципах:

  • інкапсуляція
  • наслідування
  • абстракція
  • поліморфізм

Інкапсуляція

Інкапсуляція - це властивість системи, що дозволяє об'єднати дані і методи, що працюють з ними, в класі і приховати деталі реалізації від користувача. Як приклад це об'єднання полів і методів в класі, з метою закрити прямого доступ до полів і відкрити його для методів, які цими полями керують.

Або ж іншими словами: Інкапсуляція — це здатність об’єктів приховувати частину свого стану й поведінки від інших об’єктів, надаючи зовнішньому світові тільки визначений інтерфейс взаємодії із собою.

Інкапсуляція нерозривно пов'язана з поняттям інтерфейсу класу. По суті, все те, що не входить в інтерфейс, інкапсолюється в класі.

Згідно інкапсуляції, доступ до полів рекомендується закривати використовуючи відповідні специфікатор доступу. Щоб надати можливість вносити зміни або отримувати значення полів, створюються спеціальні методи.Метод, який повертає значення поля, називається геттер (від англійського get - «отримувати»). Метод, який встановлює значення поля, називається сетер (від англійського set - «встановлювати»).

Наслідування (Спадкування)

Наслідування - це властивість системи, що дозволяє описати новий клас на основі вже існуючого з частково або повністю запозичує функціональністю. Клас, від якого виробляється спадкування, називається базовим або батьківським. Новий клас - нащадком, спадкоємцем або похідним класом. Наслідування — це можливість створення нових класів на основі існуючих. Головна користь від спадкування - повторне використання існуючого коду. Розплата за наслідування виражається в тому, що підкласи завжди дотримуються інтерфейсу батьківського класу. Ви не можете виключити з підкласу метод, оголошений його предком.

Поліморфізм

Поліморфізм - це властивість системи використовувати об'єкти з однаковим інтерфейсом без інформації про тип і внутрішню структуру об'єкта. Або ж іншими словми: Поліморфізм — це здатність програми вибирати різні реалізації під час виклику операцій з однією і тією жназвою.

Це означає можливість використання одного імені для методів різних класів які знаходяться в одній ієрархії наслідування (тобто в родинних класах) з метою виконання подібних дій. Створення методу в класі з таким же ім'ям, що і ім'я методу батьківського класу, називається перевизначенням методу. Суть перевизначення методу - в класі насліднику в перевизначеному методі робить схоже, але дію яка відрізняється, ніж дія методу батьківського класу.

Абстракція

Абстрагування — це спосіб виділити набір значущих характеристик об'єкта, виключаючи з розгляду незначущі. Відповідно, абстракція - це набір всіх таких характеристик.

Іншими словами можна сказати так, що Абстракція — це модель деякого об’єкта або явища реального світу, яка відкидає незначні деталі, що не грають істотної ролі в даномуконтексті.

2019-04-24 03:00:56