Инкапсуляция начинается там, где заканчивается абстракция. Абстракция говорит: «Вам разрешено смотреть на объект с высоким уровнем детализации». Инкапсуляция гласит: «Кроме того, вам не разрешено смотреть на объект на каком-либо другом уровне детализации».
— Code Complete

Итак, что мы здесь видим?

Абстракция больше связана с кластеризацией похожих объектов: абстрактные часы не означают ничего конкретного о механизме часов, они могут быть электронными, кварцевыми или автоматическими.
Механизм реализации в ООП: абстрактный класс.

Инкапсуляция больше связана с предоставлением интерфейса взаимодействия: можно считывать время с часов, подзаряжать их, брать с собой, но что здесь самое главное — не вглядываясь в детали выполнение.
Автоматические и кварцевые часы снаружи выглядят одинаково, но механически они разные внутри.
Внутренние части часов инкапсулированы.
Механизм реализации в ООП: интерфейс.

Что это значит практически?

Нижний уровень абстракции обеспечивает более подробный интерфейс:
- Абстрактно, все часы являются часами, не может быть подробного интерфейса, все, что мы знаем на этом уровне — это часы showTime()
- Тогда мы можем определить более низкий уровень абстракции: часы-хронометр. Здесь мы точно знаем, интерфейс будет предоставлять функции start() и stop()

Объекты с одинаковым интерфейсом можно заменить: в зависимости от ситуации вы можете заменить механический хронометр на электронный.

Объекты более низкого уровня абстракции могут заменить объекты более высокого уровня: если вам нужны какие-либо часы (просто чтобы посмотреть время), вам подойдет хронометр, т.к. он имеет showTime() и, как дополнение к нему, start() и stop(). Вот ссылка на ЛСП