align="justify"> Наявність інкапсуляції достатньо для об'єктності мови програмування, але ще не означає його об'єктної орієнтованості - для цього потрібна наявність успадкування.
Але навіть наявність інкапсуляції і спадкування не робить мову програмування повною мірою об'єктним з точки зору ООП. Основні переваги ООП виявляються тільки в тому випадку, коли в мові програмування реалізований поліморфізм; тобто можливість об'єктів з однаковою специфікацією мати різну реалізацію. p align="justify"> Особливості реалізації
Поля даних
Параметри об'єкту (звичайно, не всі, а тільки необхідні в програмі), що задають його стан (властивості об'єкта предметної області). Іноді поля даних об'єкта називають властивостями об'єкта, через що можлива плутанина. Фізично поля являють собою значення (змінні, константи), оголошені як належать класу. p align="justify"> Методи
Процедури і функції, пов'язані з класом. Вони визначають дії, які можна виконувати над об'єктом такого типу, і які сам об'єкт може виконувати. p align="justify"> Класи можуть успадковуватися один від одного. Клас-нащадок отримує всі поля та методи класу-батька, але може доповнювати їх власними або перевизначати вже наявні. Більшість мов програмування підтримує тільки одиничне успадкування (клас може мати тільки один клас-батько), лише в деяких допускається множинне успадкування - породження класу від двох або більше класів-батьків. Множинне спадкування створює цілий ряд проблем, як логічних, так і чисто реалізаційних, тому в повному обсязі його підтримка не поширена. Замість цього в 1990-і роки з'явилося і стало активно вводитися в об'єктно-орієнтовані мови поняття інтерфейсу. Інтерфейс - це клас без полів і без реалізації, що включає лише заголовки методів. Якщо якийсь клас успадковує (або, як кажуть, реалізує) інтерфейс, він повинен реалізувати всі вхідні в нього методи. Використання інтерфейсів надає відносно дешеву альтернативу множинного спадкоємства. Взаємодія об'єктів в абсолютній більшості випадків забезпечується викликом ними методів один одного. p align="justify"> Інкапсуляція забезпечується наступними засобами:
Контроль доступу
Оскільки методи класу можуть бути як чисто внутрішніми, що забезпечують логіку функціонування об'єкта, так і зовнішніми, за допомогою яких взаємодіють об'єкти, необхідно забезпечити прихованість перших при доступності ззовні других. Для цього в мови вводяться спеціальні синтаксичні конструкції, явно задають область видимості кожного члена класу. Традиційно це модифікатори public, protected і private, що позначають, відповідно, відкриті члени класу, члени класу, доступні тільки з класів-нащадків і приховані, доступні тільки усередині класу. Конкретна номенклатура модифікаторів і їх точний зміст різняться в різних мовах. p align="justify"> Мет...