Kompletne wprowadzenie do klas abstrakcyjnych w Javie



Ten artykuł pomoże ci w szczegółowym podejściu do klas abstrakcyjnych w Javie wraz z przykładami, aby lepiej zrozumieć koncepcję.

Klasy abstrakcyjne w pomóc użytkownikom w osiągnięciu abstrakcji, która jest najważniejszą praktyką programowania obiektowego stosowaną w procesie projektowania oprogramowania. W tym artykule omówimy terminologię klas abstrakcyjnych za pomocą następującego dokumentu.

Co to są klasy abstrakcyjne w Javie?

Klasy abstrakcyjne w pełnią rolę granicy między sposobem implementacji a jego funkcjonalnością. Służy do wymiany funkcjonalności między Beton członkowie klasy i Abstrakcyjny Klasa.





Abstract-Classes-in-Java-Edureka

Klasy abstrakcyjne są uważane za te klasy, które ukrywają Implementacja metody szczegóły od użytkownika i pokaż tylko Funkcjonalność metod. Są deklarowane za pomocą słowa kluczowego abstrakcyjny . Te metody mogą obejmować Abstrakcyjny i Nie-abstrakcyjne metody w nich.

co to jest .format w Pythonie

Dlaczego potrzebujemy klas abstrakcyjnych w Javie?

Potrzebujemy klas abstrakcyjnych w Javie z następujących powodów:



  • Obsługa klas abstrakcyjnych Dynamiczna rozdzielczość metody w czasie wykonywania
  • Pomagają użytkownikom osiągnąć Luźne powiązanie
  • Klasy abstrakcyjne oddzielają Definicja metody z dziedziczonych Podklasy
  • Zapewniają Domyślna funkcjonalność określonej metody dla wszystkich podklas
  • Klasy abstrakcyjne zapewniają Szablon dla przyszłych konkretnych zajęć
  • Klasa abstrakcyjna pozwala Kod Możliwość ponownego użycia

Zasady używania klas abstrakcyjnych w Javie

Aby zaimplementować klasę abstrakcyjną w Javie, musimy przestrzegać zasad opisanych poniżej:



  • Klasę abstrakcyjną należy zadeklarować przy użyciu rozszerzenia abstrakcyjny słowo kluczowe.
  • Klasy abstrakcyjne mogą obejmować abstrakcyjny i nieabstrakcyjne metody.
  • Klasa abstrakcyjna nie może być utworzony.
  • Mogą zawierać konstruktorzy i statyczny metody.
  • Klasa abstrakcyjna obejmuje finał metody.

Sposoby osiągnięcia abstrakcji w Javie

Proces abstrakcji w Javie można osiągnąć za pomocą następujących dwóch metod, jak wspomniano poniżej:

  1. Implementacja klasy abstrakcyjnej
  2. Implementowanie interfejsu

Składnia klas abstrakcyjnych

Składnia definiowania klas abstrakcyjnych i metod abstrakcyjnych jest następująca:

Klasa abstrakcyjna Edureka {}
Klasa abstrakcyjna Method ()

Praktyczne przykłady klas abstrakcyjnych

// Klasa abstrakcyjna

pakiet Abstract public abstract class Person {private String name private String gender 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}}

// Klasa studencka

pakiet Abstract public class Student extends 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) Person student1 = new Student ('Karan', 'Male', 201021) Person student2 = new Student ('Kumari', 'Female', 101021) Person student3 = new Student (' 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 ())}}

Wynik:

różnica między rozszerzaniem a implementacją

Nie studiuję
Zdobywanie tytułu licencjata w dziedzinie inżynierii
Zdobywanie tytułu licencjata w dziedzinie inżynierii
Zdobywanie tytułu licencjata w dziedzinie inżynierii
Imię = Priya :: Płeć = Kobieta
Imię = Karan :: Płeć = Mężczyzna
Imię = Kumari :: Płeć = Kobieta
Imię = John :: Płeć = Mężczyzna

Różnica między interfejsem a klasą abstrakcyjną

Berło Klasa abstrakcyjna
Może mieć tylko metody abstrakcyjneMoże mieć metody abstrakcyjne i nieabstrakcyjne
Ma tylko zmienne końcoweObejmuje zmienne niedokończone
Zawiera tylko zmienne statyczne i końcowePosiada zmienne statyczne, niestatyczne, końcowe, niefinałowe
Nie zaimplementuje klasy abstrakcyjnejPotrafi zaimplementować interfejs
Zaimplementowano za pomocą słowa kluczowego „implementuje”Wdrożone za pomocą słowa kluczowego „extends”
Może rozszerzyć tylko interfejsMoże rozszerzać klasy i interfejsy Java
Członkowie są domyślnie publiczniCzłonkowie mogą być prywatni i chronieni

// Przykład klasy abstrakcyjnej

pakiet abstactVSinterface abstract class 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 ('Okrąg jest narysowany')} @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 ()) Shape circle = new Circle (20, 'Cicle') System.out .println ('Pole koła to:' + circle.area ())}}

Wynik:

jak uzyskać dostęp do aws cli

Pole prostokąta: 600,0
Pole koła: 628,0

// Przykład interfejsu

pakiet absVSint interfejs Shape {void draw () double area ()} class Rectangle implementuje Shape {int length, width Rectangle (int length, int width) {this.length = length this.width = width} @Override public void draw () {System.out.println ('Prostokąt został narysowany')} @Override public double area () {return (double) (length * width)}} class Circle implements Shape {double pi = 3.14 int radius Circle (int radius) {this.radius = radius} @Override public void draw () {System.out.println ('Okrąg został narysowany')} @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 ('Area of ​​rectangle:' + rect.area ()) Shape circle = new Circle (20) System.out.println ('Obszar koła:' + circle.area ())}}

Wynik:

Pole prostokąta: 600,0
Pole koła: 628,0

Tym samym dochodzimy do końca tego artykułu. Mam nadzieję, że zrozumiałeś znaczenie abstrakcji, składni, funkcjonalności, reguł abstrakcji w Javie i praktycznych przykładów z nimi związanych.

Teraz, gdy znasz już podstawy języka Java, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji Java, a także różnych struktur Java, takich jak Hibernate i Wiosna .

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego bloga „Abstract Classes in Java”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.