Можно создать дубликат:
difference between abstraction and encapsulation?
What is the difference between abstraction and encapsulation?Инкапсуляция/Абстракция
Я заметил, что понятие инкапсуляции и абстракции имеют важное значение при обсуждении дизайна объектно-ориентированного программирования. Однако я не слишком уверен в том, как они отличаются друг от друга. Я прочитал кучу статей и сообщений (из которых большинство из них с этого сайта), которые просто противоречат друг другу.
Это мое понимание, что Абстракция - средство разложения сложности объектов реального мира. Это разложение может включать создание нескольких объектов, которые в совокупности представляют объект реального мира. Абстракция может также содержать много слоев, наследование классов - пример того, когда это будет так.
Инкапсуляция - это процесс скрытия внутренних данных реализации внутри класса. Ключевыми являются такие функции языка, как модификаторы доступа и методы Accessor.
Если эти определения верны (исправьте меня, если я ошибаюсь), по какому принципу будут использоваться интерфейсы? Абстракция? потому что группа объектов реального мира может быть суммирована в интерфейсе? Или инкапсуляция, где сам интерфейс можно использовать для раскрытия функций объекта без выявления внутренней функциональности.
Если возможно, вы также можете привести краткий пример, который будет четко различать эти два принципа?
Cheers.
См. [Урок: Интерфейсы и наследование] (http://docs.oracle.com/javase/tutorial/java/IandI/index.html). – user1329572