@go2goj

Чем представлена абстракция (принцип ООП) в Java?

Если инкапсуляция в Java представлена модификаторами доступа, то чем представлена абстракция?
  • Вопрос задан
  • 847 просмотров
Решения вопроса 1
Maksclub
@Maksclub
maksfedorov.ru
Абстракция — ключевое явление в ООП

Сам класс — уже абстракция чего-то, когда я создаю класс Product, то это абстракция некоторых объектов моей системы, что их отличает от всего внутреннего мира системы уже как минимум названием (и потом интерфейсом и поведением, описанным в классе).

Но ключевое для абстракции — интерфейс, он есть в каждом классе (публичный и приватный), но тк у класса есть уже описание поведения и объекта, то такую абстракцию тяжело отделить, потому придумали конструкцию интерфейс — абстракция в чистейшем виде. Мы просто передаем абстракную договоренность и все, кто умеет с ней работать — работают с теми объектами, кто этот интерфейс реализует. Это полиморфизм.

Также мы можем абстрагировать некий функционал от привязки к конкретному типу. И создать функционал над абстрактным (обобщенным) типом — дженерики (параметрический полиморфзм).

Наследование, инкапсуляция и полиморфизм — ключевые способы для создания абстракции.
  • Полимофризм — создаем или интерфейс или абстрактный класс, что очертит границы абстракции и уже в конкретных реализациях абстракцию "материализуем". Или создаем некий класс, который работает с любым типом, но строго указанным при создании объекта (параметрический полиморфизм)
  • Наследование — похожее поведение у ряда классов выносим в абстракцию (родительский класс, абстрактный класс)
  • Инкапсуляция — очищаем абстракцию, отдав наружу только публичный интерфйес (границы абстракции), все остальное (не относящиеся к нашей абстракции) прячем
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@atambalasi
Посмотри про инкапсуляцию тут .
Абстрагирование — отвлечение в процессе познания от несущественных сторон, свойств, связей объекта (предмета или явления) с целью выделения их существенных, закономерных признаков. Результат абстрагирования — абстрактные понятия, например: цвет, кривизна, красота и т. д.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы