Кожний стиль програмування має свою концептуальну базу. Для ОО стилю такою базою є об’єктна модель. Її побудова основана на використанні 3-х основних концепцій.
– інкапсуляція
– поліморфізм
– наслідування
Інкапсуляція – механізм, який поєднує дані та методи, що обробляють ці дані і захищає і те і інше від зовнішнього впливу або не вірного використання. Коли і методи і данні об’єднуються таким чином – створюється об’єкт.
В середині об’єкта дані і методи можуть мати різні ступені відкритості. Як правило відкриті члени класу використ. Для того, що б забезпечити інтерфейс, що контролюється з його закритою частиною.
Наслідування – процес, завдяки якому один об’єкт може придбати властивості іншого, тобто наслідувати властивість іншого обєкту і додавати риси характерні тільки для нього самого.
В якості прикладів можна навести класифікацію будь-яких об’єктів, яка дає відповідь на питання в чому схожість об’єкта даного класу з інш. Об’єктом і в чому різниця. Наслідування забезпечує загальність функції в той час припускаючи стільки особливостей, скільки необхідно. Таким чином наслідування виконує в ООП такі функції:
– моделює концептуальну структуру предметної області
– економить опис, дозволяючи використовувати функції багатократно для завдань різних класів.
– забезпечує покрокове програмування великих систем, шляхом багатократної конкретизації класів.
Поліморфізм – властивість, яка дозволяє одне і те саме ім’я використовувати для вирішення декількох технічно різних задач, тобто основною метою поліморфізму є використання одного імені для задання загальних класу дій. На практиці це значить спроможність об’єктів вибирати внутрішній метод або процедуру, виходячи із типу даних, прийнятих в повідомленні.
Приклад, об’єкт з імям “print” отримує повідомлення в якому виконуються дії по друку таких типів данних, як двійкове ціле число, двійкове число з плаваючою комою і символьний рядок. В залежності від того типу даних, які працюють в команді буде підібраний тип (даних) формату для друку.
Перевагою поліморфізму є те, що:
– він допомагає зменшити складність програм
– дозволяє використання одного інтерфейсу для єдиного класу дій
а вибір конкретної дії передається компілятору. Таким чином, поліморфізм означає присвоювання певній дії одної дії або позначення, яке спільно використовується об’єктами різних типів. При цьому кожний об’єкт реалізує дії способом, що відповідає його типу.