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



Эта статья поможет вам с подробным подходом к абстрактным классам в Java вместе с примерами, чтобы лучше понять концепцию.

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

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

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





Abstract-Classes-in-Java-Edureka

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

передать по значению передать по ссылке java

Зачем нам нужны абстрактные классы в Java?

Абстрактные классы в Java нужны нам по следующим причинам:



  • Поддержка абстрактных классов Разрешение динамического метода во время выполнения
  • Они помогают пользователям достичь Слабая связь
  • Абстрактные классы разделяют Определение метода из унаследованных Подклассы
  • Они обеспечивают Функциональность по умолчанию определенного метода для всех подклассов
  • Абстрактные классы предоставляют Шаблон для будущих специальных занятий
  • Абстрактный класс позволяет Код Повторное использование

Правила использования абстрактных классов в Java

Чтобы реализовать абстрактный класс в Java, нам нужно следовать правилам, описанным ниже:



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

Способы достижения абстракции в Java

Процесс абстракции в Java может быть реализован двумя следующими способами, как указано ниже:

  1. Реализация абстрактного класса
  2. Реализация интерфейса

Синтаксис для абстрактных классов

Синтаксис для определения абстрактных классов и абстрактных методов следующий:

абстрактный класс Edureka {}
абстрактный класс Method ()

Практические примеры абстрактных классов

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

package Abstract public abstract class Person {private String name private String пол public Person (String nm, String gen) {this.name = nm this.gender = gen} public abstract void Studying () @Override public String toString () {return ' Name = '+ this.name +' :: Gender = '+ this.gender}}

// Студенческий класс

функция сортировки массив c ++
пакет Абстрактный открытый класс Student расширяет Person {private int StudentID public Student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @Override public void Studying () {if (StudentID == 0 ) {System.out.println ('Not Studying')} else {System.out.println ('Pursuing a Degree in Bachelor of Engineering')}} public static void main (String args []) {Person student = new Student ('Priya', 'Female', 0) Человек student1 = новый ученик ('Karan', 'Мужчина', 201021) Человек student2 = новый ученик ('Кумари', 'Женщина', 101021) Человек student3 = новый ученик (' John ',' Male ', 201661) student.Studying () student1.Studying () student2.Studying () student3.Studying () System.out.println (student.toString ()) System.out.println (student1.toString). ()) System.out.println (student2.toString ()) System.out.println (student3.toString ())}}

Вывод:

Не учусь
Получение степени бакалавра технических наук
Получение степени бакалавра технических наук
Получение степени бакалавра технических наук
Имя = Прия :: Пол = Женский
Имя = Каран :: Пол = Мужской
Имя = Кумари :: Пол = Женский
Имя = Джон :: Пол = Мужской

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

Интерфейс Абстрактный класс
Может иметь только абстрактные методыМожет иметь абстрактные и не абстрактные методы
В нем есть только конечные переменныеВключает неокончательные переменные
Он имеет только статические и конечные переменныеОн имеет статические, нестатические, конечные, не конечные переменные.
Не будет реализовывать абстрактный классМожет реализовать интерфейс
Реализовано с использованием ключевого слова «орудия»Реализовано с использованием ключевого слова «расширяет»
Может расширять только интерфейсМожет расширять классы и интерфейсы Java
По умолчанию участники являются общедоступнымиУчастники могут быть частными и защищенными

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

package abstactVSinterface абстрактный класс Shape {String objectName = '' Shape (String name) {this.objectName = name} абстрактная публичная двойная область () abstract public void draw ()} class Rectangle extends Shape {int length, width Rectangle (int length, int width, String name) {super (name) this.length = length this.width = width} @Override public void draw () {System.out.println ('Rectangle is drawn')} @Override public double area () {return (double) (length * width)}} class Circle расширяет форму {double pi = 3.14 int radius Circle (int radius, String name) {super (name) this.radius = radius} @Override public void draw () { System.out.println ('Круг нарисован')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args ) {Shape rect = new Rectangle (20, 30, 'Rectangle') System.out.println ('Area of ​​rectangle:' + rect.area ()) Форма круга = new Circle (20, 'Cicle') System.out .println ('Площадь круга:' + circle.area ())}}

Вывод:

Площадь прямоугольника: 600.0
Площадь круга: 628,0

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

пакет absVSint интерфейс Shape {void draw () double area ()} класс Rectangle реализует Shape {int length, width Rectangle (int length, int width) {this.length = length this.width = width} @Override public void draw () {System.out.println ('Прямоугольник нарисован')} @Override public double area () {return (double) (length * width)}} класс Circle реализует Shape {double pi = 3.14 int radius Circle (int radius) {this.radius = radius} @Override public void draw () {System.out.println ('Круг нарисован')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args) {Shape rect = new Rectangle (20, 30) System.out.println ('Площадь прямоугольника:' + rect.area ()) Форма круга = новый Круг (20) System.out.println ('Площадь круга:' + circle.area ())}}

Вывод:

одномерный массив в Java

Площадь прямоугольника: 600.0
Площадь круга: 628,0

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

Теперь, когда вы разобрались с основами Java, ознакомьтесь с от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать Java-разработчиками. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и весна .

Есть вопрос к нам? Упомяните об этом в разделе комментариев этого блога «Абстрактные классы в Java», и мы свяжемся с вами как можно скорее.