Абстрактный класс в Java — с примерами

Опубликовано: 2022-06-24

Абстракция данных — это метод сокрытия определенной информации и отображения пользователям только необходимых деталей. Эта абстракция данных может быть достигнута двумя способами: абстрактный класс и интерфейсы.

Оглавление

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

Абстрактный класс в Java — это ограниченный класс, заключенный в оболочку или объявленный с помощью ключевого слова abstract. Абстрактный класс может иметь как абстрактные, так и неабстрактные методы. Его нельзя использовать для создания объекта. Чтобы получить доступ к абстрактному классу, он должен быть унаследован от другого класса.

Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Правила абстрактного класса

  • Абстрактный класс может быть объявлен только внутри ключевого слова abstract.
  • Он может содержать как абстрактные, так и неабстрактные методы.
  • Он также может иметь окончательные методы.
  • Он никогда не может быть создан.
  • Также можно использовать конструкторы и статические методы.

Пример абстрактного класса:

абстрактный класс B{}

Абстрактный метод в Java

Этот метод может использоваться только в абстрактном классе и не содержит тела. Тело будет предоставлено унаследованным подклассом.

Пример абстрактного метода:

абстрактная пустота printStatus(); // нет тела метода и аннотации

Пример абстрактного класса Java с абстрактным методом

В следующем примере автомобиль — это абстрактный класс с одним абстрактным методом run. Реализация обеспечивается классом Audi.

абстрактный класс Car{

абстрактная пустота run();

}

класс Audi4 расширяет велосипед{

void run(){System.out.println("работает нормально");}

public static void main (String args []) {

Автомобиль obj = новый Audi4();

объект.run();

}

}

Вывод программы будет «работает нормально».

В большинстве случаев класс реализации остается неизвестным (абстракция данных), а объект класса реализации получается через фабричный метод.

Метод, который возвращает экземпляр класса, называется фабричным методом.

Пример абстрактного класса Java с фабричным методом

В следующем примере при создании экземпляра класса Square запускается метод draw() класса Square.

абстрактный класс Shape{

абстрактная пустота draw();

}

//В реальном сценарии реализация обеспечивается другими, т.е. неизвестна конечному пользователю

класс Square расширяет Shape{

void draw(){System.out.println("Квадрат рисования");}

}

класс Circle1 расширяет Shape{

void draw(){System.out.println("рисунок шестиугольника");}

}

//В реальном сценарии метод вызывается программистом или пользователем

класс TestAbstraction1 {

public static void main (String args []) {

Shape s=new Circle1();//В реальном сценарии объект предоставляется через метод, например, метод getShape()

с.рисовать();

}

}

Результатом вышеприведенной программы будет «рисование шестиугольника».

Популярные курсы и статьи по программной инженерии

Популярные программы
Программа Executive PG в разработке программного обеспечения - IIIT B Программа сертификации блокчейна — PURDUE Программа сертификации кибербезопасности - PURDUE MSC в области компьютерных наук - IIIT B
Другие популярные статьи
Зарплата облачного инженера в США в 2021-2022 гг. Заработная плата архитектора решений AWS в США Зарплата бэкенд-разработчика в США Зарплата Front End Developer в США
Заработная плата веб-разработчика в США Вопросы на собеседовании Scrum Master в 2022 году Как начать карьеру в сфере кибербезопасности в 2022 году? Варианты карьеры в США для студентов инженерных специальностей

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

Ниже приведены несколько сценариев, в которых можно использовать абстрактный класс:

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

Когда использовать интерфейс в Java для абстракции?

В следующих сценариях для достижения абстракции требуется интерфейс Java:

  • Для поддержки функций множественного наследования
  • Для достижения слабой связи

Объявление интерфейса

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

Пример интерфейса Java

В приведенном ниже примере интерфейс для печати имеет только один метод, реализация которого предоставлена ​​в классе A6.

интерфейс для печати {

пустая печать();

}

класс A6 реализует печатные {

public void print(){System.out.println("Добро пожаловать");}

public static void main (String args []) {

A6 obj = новый A6();

объект.print();

}

}

Вывод программы будет

Добро пожаловать.

Пример 2:

интерфейс Банк{

плавающая ставка процента();

}

класс BOI реализует банк{

общедоступная плавающая ставка процента () {return 8.5f;}

}

класс CUB реализует банк{

общедоступная плавающая ставка процента () {return 9.2f;}

}

класс TestInterface2 {

public static void main(String[] args){

Банк b=новый BOI();

System.out.println("ROI: "+b.rateOfInterest());

}}

Вывод вышеуказанной программы будет

Рентабельность инвестиций: 8,5

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

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

Чтобы узнать больше об абстракции данных в Java и разработке программного обеспечения, зарегистрируйтесь в программе Executive Post Graduate Programme в области разработки программного обеспечения , предлагаемой IIIT Bangalore совместно с upGrad.

Программа Executive Postgraduate в области разработки программного обеспечения — это 13-месячная онлайн-программа. Учебная программа специально разработана для работающих специалистов, чтобы они могли сосредоточиться на обучении, не отказываясь от своей работы. Учебная программа включает отраслевые проекты и тематические исследования. Кроме того, в программе более 10 сеансов в прямом эфире с экспертами отрасли, которые помогают кандидатам быть в курсе текущих тенденций в отрасли.

Можем ли мы иметь абстрактный класс без какого-либо абстрактного метода?

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

Почему абстракция данных необходима?

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

Чем абстракция данных отличается от абстракции управления?

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