Прежде чем переходить к буквальному смыслу, давайте разберемся, что это такое? так что мы можем сделать вывод о нашем собственном определении Абстракция. скажем, например, я хочу, чтобы калькулятор решил проблему, и у одного из моих друзей есть калькулятор марки Casio, а у другого есть калькулятор Sharp, я бы попросил калькулятор, я не скажу, что дайте мне калькулятор компании Sharp. или компании Casio. Я бы скорее сказал, дайте мне калькулятор, и это то, что вы абстрагируете от него, поэтому вы не входите в реализацию, вы просите резюме его.

Пример абстракции в Java в реальном времени

Теперь взглянем на абстракцию в java, давайте рассмотрим пример абстракции в java. Есть мастерская по ремонту автомобилей, и мы знаем, что класс — это чертеж реального мира. сущность, поэтому у нас есть класс «CarShop», который используется для ремонта, покраски и мойки автомобилей, поэтому у нас есть такие методы, как ремонт (), краска () и стирка () в классе CarShop.

класс автомагазин{

публичный ремонт пустоты () {

//выполнение

}

публичная недействительная краска () {

//выполнение

}

общественная недействительная стирка () {

//выполнение

}

}

Итак, это была мастерская, которая использовалась для ремонта автомобилей, так что наверняка будет и класс автомобилей, скажем, например, у нас есть автомобили марок Audi, Honda и Chevrolet.

Теперь, если нам нужно отремонтировать «Audi TT», нам нужен объект Audi, который является TT.

Публичный ремонт пустот(Audi TT){

}

что, если нам также нужно отремонтировать «Шевроле Спарк», мы должны создать для этого отдельный метод

Публичный ремонт пустот(Chevrolet Spark){

}

видите, теперь у нас есть два метода абстракции, особенно для Audi и Chevrolet. Что, если бы мы могли создать абстрактный слой? В общем, эти два автомобиля являются автомобилями и имеют схожие методы, такие как ускорение и торможение. да, их реализация отличается, но в целом функции одинаковы, поэтому у нас может быть общий класс с именем Car

класс автомобилей{

ускорить(){ //……. }

тормоз(){ // ……. }

}

После этого мы можем расширить родительский класс в Audi, Chevrolet и Honda.

теперь у нас есть преимущество, заключающееся в том, что мы можем вызывать метод со ссылкой на родительский класс и объект дочернего класса, например:

общественный ремонт пустоты (автомобиль ТТ){

// выполнение }

Имейте в виду, что, как правило, все это автомобили и обладают одинаковыми функциями, но имеют разную реализацию. Да, у них одинаковые концепции, но они работают по-разному, я имею в виду, что когда вы применяете ускорение, их пределы различны. Поэтому, чтобы избежать при столкновении похожей концепции с отличающейся реализацией мы используем "Абстрактный класс".

Абстрактный класс Автомобиль{

ускорить();

тормоз();

}

Теперь мы можем иметь их конкретную реализацию в подклассах, расширяющих класс Car.

Определение абстракции

Здесь мы можем получить окончательное определение абстракции.

«Процесс рассмотрения чего-либо независимо от его ассоциаций или атрибутов».

«Определение абстракции в Java»

« Абстракция — это процесс сокрытия деталей реализации от пользователя. Пользователю будет предоставлена ​​только функциональность.

Вы знаете?

Абстракции в Java также можно добиться с помощью интерфейсов.

Различия

Инкапсуляция VS Абстракция

Инкапсуляция скрывает переменные или некоторые реализации, которые могут так часто изменяться в классе, чтобы посторонние не могли получить к ним прямой доступ. Они должны получить к нему доступ через методы получения и установки.

Абстракция тоже используется для сокрытия чего-либо, но в более высокой степени (класс, интерфейс). Клиенты, использующие абстрактный класс (или интерфейс), не заботятся о том, кто или что это было, им просто нужно знать, что он может делать.