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