Абстракция: Идея представления чего-либо упрощенным / другим способом, который либо легче понять и использовать, либо более уместен в данной ситуации.
Рассмотрим класс, который отправляет электронное письмо ... он использует абстракцию, чтобы показать себя вам как своего рода мессенджер, так что вы можете вызвать emailSender.send (mail, получатель). Что он на самом деле делает - выбирает POP3 / SMTP, вызывающие серверы, перевод MIME и т. Д., Абстрагируется. Вы видите только своего посыльного мальчика.
Инкапсуляция: Идея защиты и сокрытия данных и методов, которые являются частными для объекта. Это больше касается создания чего-то независимого и надежного.
Возьми меня, например. Я инкапсулирую частоту сердечных сокращений от остального мира. Потому что я не хочу, чтобы кто-то еще менял эту переменную, и мне не нужно, чтобы кто-то еще устанавливал ее, чтобы я мог функционировать. Это жизненно важно для меня, но вам не нужно знать, что это такое, и вам, вероятно, все равно.
Осмотревшись, вы обнаружите, что почти все, к чему вы прикасаетесь, является примером как абстракции, так и инкапсуляции. Например, ваш телефон представляет собой абстракцию способности воспринимать то, что вы говорите, и говорить это кому-то другому - покрывая GSM, архитектуру процессора, радиочастоты и миллион других вещей, которые вы не понимаете или не заботитесь. Он также включает в себя определенные данные от вас, такие как серийные номера, идентификационные номера, частоты и т. Д.
Все это делает мир лучшим местом для жизни: D