Автор оригинала: Pankaj Kumar.
Абстракция-одна из основных концепций объектно-ориентированного программирования . Абстракция определяет модель для создания компонента приложения. Реализация абстракции зависит от особенностей и процессов, специфичных для языка.
1. Что такое Абстракция?
Абстракция – это процесс сокрытия внутренних деталей приложения от внешнего мира. Абстракция используется для описания вещей в простых терминах. Он используется для создания границы между приложением и клиентскими программами.
2. Абстракция в реальной жизни
Абстракция присутствует почти во всех реальных машинах.
- Ваш автомобиль-отличный пример абстракции. Вы можете завести автомобиль, повернув ключ или нажав кнопку “Пуск”. Вам не нужно знать, как запускается двигатель, какие все компоненты есть в вашем автомобиле. Внутренняя реализация автомобиля и сложная логика полностью скрыты от пользователя.
- Мы можем разогреть нашу еду в микроволновой печи. Мы нажимаем несколько кнопок, чтобы установить таймер и тип пищи. Наконец, мы получаем горячую и вкусную еду. Внутренние детали микроволновой печи скрыты от нас. Нам был предоставлен доступ к функциональности очень простым способом.
3. Абстракция в УПС
Объекты являются строительными блоками объектно-ориентированного программирования. Объект содержит некоторые свойства и методы. Мы можем скрыть их от внешнего мира с помощью модификаторов доступа. Мы можем предоставить доступ только к необходимым функциям и свойствам другим программам. Это общая процедура реализации абстракции в OOPS.
4. Каковы различные типы абстракции?
Существует два типа абстракции.
- Абстракция Данных
- Абстракция Процесса
4.1) Абстракция Данных
Когда данные объекта не видны внешнему миру, это создает абстракцию данных. При необходимости доступ к данным Объектов обеспечивается с помощью некоторых методов.
Абстракция Данных
4.2) Абстракция Процесса
Нам не нужно предоставлять подробную информацию обо всех функциях объекта. Когда мы скрываем внутреннюю реализацию различных функций, участвующих в пользовательской операции, это создает абстракцию процесса.
Абстракция Процесса
5. Абстракция в Java
Абстракция в Java реализуется через интерфейсы и абстрактные классы . Они используются для создания базовой реализации или контракта для реальных классов реализации.
Car.java : Базовый интерфейс или абстрактный класс
package com.journaldev.oops.abstraction; public interface Car { void turnOnCar(); void turnOffCar(); String getCarType(); }
ManualCar.java, AutomaticCar.java : классы реализации автомобилей.
package com.journaldev.oops.abstraction; public class ManualCar implements Car { private String carType = "Manual"; @Override public void turnOnCar() { System.out.println("turn on the manual car"); } @Override public void turnOffCar() { System.out.println("turn off the manual car"); } @Override public String getCarType() { return this.carType; } }
package com.journaldev.oops.abstraction; public class AutomaticCar implements Car { private String carType = "Automatic"; @Override public void turnOnCar() { System.out.println("turn on the automatic car"); } @Override public void turnOffCar() { System.out.println("turn off the automatic car"); } @Override public String getCarType() { return this.carType; } }
Пользовательская программа : Давайте рассмотрим тестовую программу, в которой будут использоваться функции автомобиля.
package com.journaldev.oops.abstraction; public class CarTest { public static void main(String[] args) { Car car1 = new ManualCar(); Car car2 = new AutomaticCar(); car1.turnOnCar(); car1.turnOffCar(); System.out.println(car1.getCarType()); car2.turnOnCar(); car2.turnOffCar(); System.out.println(car2.getCarType()); } }
Клиентская программа знает только об Автомобиле и функциях, которые предоставляет автомобиль. Детали внутренней реализации скрыты от клиентской программы.
Ссылки: Википедия , Oracle Docs