Так !!!! Якщо я кажу, інкапсуляція - це свого роду вдосконалена конкретна абстракція ,
Скільки з вас прочитали / підтримали мою відповідь. Давайте розкопаємось, чому я кажу так.
Мені потрібно прояснити дві речі перед тим, як заявити претензію.
Один - приховування даних, а інший - абстракція
Приховування даних
Здебільшого ми не надаємо прямого доступу до наших внутрішніх даних. Наші внутрішні дані не повинні виходити безпосередньо, оскільки стороння особа не може отримати безпосередній доступ до наших внутрішніх даних. Вся справа в безпеці, оскільки нам потрібно захищати внутрішні стани певного об’єкта.
Абстракція
Для простоти приховування внутрішніх реалізацій називається абстракцією. В абстракції ми зосереджуємось лише на необхідних речах. В основному, ми говоримо про те, "що робити", а не "як робити" в абстракції. Безпеки також можна досягти абстракцією, оскільки ми не збираємося виділяти "як ми реалізуємо". Ремонтність буде збільшена, оскільки ми можемо змінити реалізацію, але це не вплине на нашого кінцевого користувача.
Я сказав: "Інкапсуляція - це свого роду вдосконалена абстракція конкретного обсягу". Чому? тому що ми можемо розглядати інкапсуляцію як приховування даних + абстракцію
інкапсуляція = приховування даних + абстракція
При інкапсуляції нам потрібно приховувати дані, щоб стороння особа не бачила дані, і нам потрібно надати методи, які можна використовувати для доступу до даних. Ці методи можуть мати перевірки чи інші особливості всередині тих речей, які також приховані стороннім. Отже, тут ми приховуємо реалізацію методів доступу, і це називається абстракцією.
Ось чому я сказав, що подібне вище інкапсуляція - це свого роду абстракція.
То де різниця ?
Різниця полягає в тому, що абстракція є загальною, якщо ми приховуємо щось від користувача для простоти, ремонтопридатності та безпеки, і,
інкапсуляція - це конкретна, яка пов’язана з безпекою внутрішніх станів, де ми приховуємо внутрішній стан (приховування даних), і ми пропонуємо методи доступу до даних, а ці способи реалізації також приховані від зовнішньої особи (абстракція).