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



Тази статия ще ви помогне с подробен подход към абстрактните класове в Java, заедно с примери, за да разберете концепцията по-добре.

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

Какво представляват абстрактните класове в Java?

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





Abstract-Classes-in-Java-Edureka

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

предимства на jquery пред javascript

Защо се нуждаем от абстрактни класове в Java?

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



  • Поддръжка на абстрактни класове Разделителна способност на динамичен метод по време на изпълнение
  • Те помагат на потребителите да постигнат Разхлабено съединение
  • Абстрактни класове разделят Определение на метода от Наследеното Подкласове
  • Те осигуряват Функционалност по подразбиране на дефинирания метод за всички подкласове
  • Абстрактните класове осигуряват a Шаблон за бъдещи специфични класове
  • Абстрактният клас позволява Код Повторно използване

Правила за използване на абстрактни класове в Java

За да приложим абстрактен клас в Java, трябва да следваме правилата, описани по-долу:



  • Абстрактният клас трябва да бъде деклариран с помощта на абстрактно ключова дума.
  • Абстрактните класове могат да включват абстрактно и не абстрактен методи.
  • Абстрактен клас не може да бъде инстанциран.
  • Те могат да включват конструктори и статични методи.
  • Абстрактният клас включва финал методи.

Начини за постигане на абстракция в Java

Процесът на абстракция в Java може да бъде постигнат чрез следните два метода, както е споменато по-долу:

  1. Внедряване на абстрактен клас
  2. Внедряване на интерфейс

Синтаксисът за абстрактни класове

Синтаксисът за дефиниране на абстрактни класове и абстрактни методи е както следва:

абстрактен клас Edureka {}
Метод на абстрактния клас ()

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

// Абстрактен клас

пакет Абстрактна публична абстрактна класа Person {частно име на низа private String пол публично 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}}

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

пакет Абстрактна публична класа 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 ('Не се учи')} else {System.out.println ('Извършване на бакалавърска степен по инженерство')}} public static void main (String args []) {Person student = new Student ('Priya', 'Female', 0) Person student1 = new Student ('Karan', 'Male', 201021) Person student2 = new Student ('Kumari', 'Female', 101021) Person student3 = new Student (' Джон ',' Мъж ', 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 ())}}

Изход:

десетичен към двоичен питонов код

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

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

Интерфейс Абстрактен клас
Може да има само абстрактни методиМоже да има абстрактни и абстрактни методи
Той има само окончателни променливиВключва нефинални променливи
Той има само статични и окончателни променливиТой има статични, нестатични, окончателни, не-окончателни променливи
Няма да внедри абстрактния класМоже да реализира интерфейс
Реализирано с помощта на ключова дума „implements“Реализирано с помощта на ключова дума „extends“
Може да разширява само интерфейсМоже да разширява Java класове и интерфейси
По подразбиране членовете са публичниЧленовете могат да бъдат частни и защитени

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

пакет abstactVSinterface абстрактен клас Shape {String objectName = '' Shape (String name) {this.objectName = name} abstract public double area () 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 extends Shape {double pi = 3.14 int radius Circle (int radius, String name) {super (name) this.radius = radius} @Override public void draw () { System.out.println ('Кръгът е изчертан')} @Override публична двойна област () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args ) {Shape rect = new Rectangle (20, 30, 'Rectangle') System.out.println ('Площ на правоъгълника:' + rect.area ()) Shape circle = new Circle (20, 'Cicle') System.out .println ('Площта на кръга е:' + circle.area ())}}

Изход:

Java разлика между разширява и изпълнява

Площ на правоъгълник: 600.0
Площта на кръга е: 628,0

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

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

Изход:

Площ на правоъгълник: 600.0
Площ на кръга: 628.0

С това стигнахме до края на тази статия. Надявам се, че сте разбрали важността на абстракцията, синтаксиса, функционалността, правилата за абстракция в Java и практически примери, свързани с тях.

След като разбрахте основите на Java, разгледайте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен за студенти и професионалисти, които искат да бъдат Java Developer. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основните, така и за разширените Java концепции, заедно с различни Java рамки като Hibernate & Пролет .

Имате въпрос към нас? Споменете го в раздела за коментари в този блог „Абстрактни класове в Java“ и ние ще се свържем с вас възможно най-скоро.