Абстракция в Java

Что такое абстракция в Java?

абстракция это концепция объектно-ориентированного программирования, которая «показывает» только существенные атрибуты и «скрывает» ненужную информацию. Основная цель абстракции — скрыть ненужные детали от пользователей. Абстракция — это выбор данных из большего пула, чтобы показать пользователю только релевантные детали объекта. Это помогает снизить сложность и усилия программирования. Это одна из важнейших концепций ООП.

Нажмите здесь если видео недоступно

Давайте изучим абстракцию в ООП на примере:

Предположим, вы хотите создать банковское приложение и вас просят собрать всю информацию о вашем клиенте. Есть вероятность, что вы получите следующую информацию о клиенте

Абстракция в Java
Абстракция в Java

Но не вся из вышеперечисленной информации необходима для создания банковского приложения. Поэтому вам нужно выбрать только полезную информацию для вашего банковское приложение из этого бассейна. Такие данные, как имя, адрес, налоговая информация и т. д., имеют смысл для банковского приложения, которое является примером абстракции в ООП.

Абстракция в Java

Поскольку мы извлекли/удалили/выбрали информацию о клиенте из более крупного пула, этот процесс называется абстракцией в ООП. Однако, та же информация, однажды извлеченная, может использоваться для широкого спектра приложений. Например, вы можете использовать те же данные для больничного заявления, заявления на портал вакансий, правительственной базы данных и т. д. с небольшими изменениями или без них. Таким образом, они становятся вашими основными данными. Это преимущество абстракции в ООП.

Разница между абстракцией и инкапсуляцией

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

Разница между абстрактным классом и интерфейсом

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

Что такое абстрактный класс?

РЕЗЮМЕ это тип класса в Java, которые объявляют один или несколько абстрактных методов. Эти классы могут иметь как абстрактные, так и конкретные методы. Обычный класс не может иметь абстрактных методов. Абстрактный класс — это класс, который содержит хотя бы один абстрактный метод. Мы можем понять эту концепцию, пример формы в Java.

Рассмотрим следующую иерархию классов, состоящую из класса Shape, который унаследован тремя классами Rectangle, Circle и Triangle. Класс Shape создан для экономии общих атрибутов и методов, общих для трех классов Rectangle, Circle и Triangle. CalculationArea() — один из таких методов, общий для всех трех дочерних классов и присутствующий в классе Shape.

Абстрактный класс в Java

Пример абстракции формы

Теперь предположим, что вы пишете код для создания объектов для классов, изображенных выше. Давайте посмотрим, как эти объекты будут выглядеть в практическом мире. Объект класса прямоугольник даст прямоугольник, форму, которую мы так часто наблюдаем в повседневной жизни.

Абстрактный класс

Объект класса треугольник даст треугольник, опять же обычную повседневную форму.

Абстрактный класс

Но как бы выглядел объект Class Shape в практическом мире??

Абстрактный класс

Если вы заметили, что класс Shape служит в наша цель достижения наследование и полиморфизм. Но он не был создан для создания экземпляров. Такие классы можно обозначить Абстрактные. Невозможно создать экземпляр абстрактного Java-класса.

Синтаксис:

abstract class Shape{
	// code
}

Возможно, вы НЕ помечаете класс Shape как абстрактный, а затем создаете его экземпляр. Но такой объект не будет иметь смысла в вашем коде и откроет пространство для потенциальных ошибок. Следовательно, это нежелательно.

Что такое абстрактные методы в Java?

АБСТРАКТНЫЙ МЕТОД in Java, — это метод, который имеет только определение метода, но не содержит реализации. Метод без тела известен как абстрактный метод. Он должен быть объявлен в абстрактном классе. Абстрактный метод никогда не будет окончательным, поскольку абстрактный класс должен реализовывать все абстрактные методы.

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

Такие методы можно назвать Абстрактные.

Синтаксис:

abstract public void calculateArea();

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

Пример кода абстракции

abstract class Shape{  
  abstract void calculateArea();  
}  
 class guru99 extends Shape{  
void calculateArea(){System.out.println("Area of Shape");}  
public static void main(String args[]){  
 Shape obj = new guru99();  
 obj.calculateArea();
}  
}

Преимущества абстракции

  • Основное преимущество использования абстракции в Программирование заключается в том, что он позволяет группировать несколько связанных классов как родственных.
  • Абстракция в объектно-ориентированном программировании помогает снизить сложность процесса проектирования и реализации программного обеспечения.

Последнее ключевое слово в Java

Последний модификатор применяется к классам, методам и переменным. Значение слова «final» варьируется от контекста к контексту, но основная идея одна и та же.

  • Последний класс не может быть унаследован
  • Последняя переменная становится константой, и ее значение невозможно изменить.
  • Последний метод не может быть переопределен. Это сделано из соображений безопасности, и эти методы используются для оптимизации.

Пример :- Выучить абстрактные и финальные ключевые слова.

Шаг 1) Скопируйте следующий код в редактор.

abstract class Shape{
   final int b = 20;
   public void display(){
     System.out.println("This is display method");
   }
   abstract public void calculateArea();
}

public class Rectangle extends Shape{
   public static void main(String args[]){
      Rectangle obj = new Rectangle();
      obj.display();
     //obj.b=200;
  }
  //public void calculateArea(){}
}

Шаг 2) Сохраните, скомпилируйте и запустите код.

Шаг 3) Ошибка =? Абстрактный метод не реализован в классе Rectangle. Чтобы устранить проблему, раскомментируйте строку №15.

Шаг 4) Раскомментируйте строку № 13. Сохраните и скомпилируйте код.

Шаг 5) Ошибка = ? переменная b является окончательной

Когда использовать абстрактные методы и абстрактный класс?

Абстрактные методы обычно объявляются там, где два или более подклассов выполняют одно и то же по-разному в разных реализациях. Он также расширяет тот же абстрактный класс и предлагает различные реализации абстрактных методов.

Абстрактные классы помогают описывать общие типы поведения и иерархию классов объектно-ориентированного программирования. Он также описывает подклассы, предоставляя детали реализации абстрактного класса.

Резюме:

  • Абстракция в программировании — это процесс выбора важных наборов данных для объект в вашем программном обеспечении и оставляя незначительные.
  • После того, как вы смоделировали свой объект с помощью абстракции данных в Java, один и тот же набор данных может использоваться в разных приложениях.