Прежде чем переходить к буквальному смыслу, давайте разберемся, что это такое? так что мы можем сделать вывод о нашем собственном определении Абстракция. скажем, например, я хочу, чтобы калькулятор решил проблему, и у одного из моих друзей есть калькулятор марки 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 Абстракция
Инкапсуляция скрывает переменные или некоторые реализации, которые могут так часто изменяться в классе, чтобы посторонние не могли получить к ним прямой доступ. Они должны получить к нему доступ через методы получения и установки.
Абстракция тоже используется для сокрытия чего-либо, но в более высокой степени (класс, интерфейс). Клиенты, использующие абстрактный класс (или интерфейс), не заботятся о том, кто или что это было, им просто нужно знать, что он может делать.