En komplett introduktion till abstrakta klasser i Java



Den här artikeln hjälper dig med en detaljerad strategi för abstrakta klasser i Java tillsammans med exempel för att förstå konceptet på ett mycket bättre sätt.

Abstrakta klasser i hjälpa användarna att uppnå abstraktion, vilket är den viktigaste objektorienterade programmeringsmetoden som följs under processen för programvarudesign. I den här artikeln ska vi diskutera terminologin för abstrakta klasser genom följande docket.

Vad är abstrakta klasser i Java?

Abstrakta klasser i fungera som en gräns mellan implementeringsmetoden och dess funktionalitet. Den används för att utbyta funktionalitet mellan Betong klassmedlemmar och Abstrakt Klass.





Abstract-Classes-in-Java-Edureka

Abstrakta klasser betraktas som de klasser som döljer Metodimplementering information från användaren och visar endast Metod Funktionalitet. De deklareras med hjälp av nyckelordet abstrakt . Dessa metoder kan inkludera Abstrakt och Icke-abstrakt metoder i dem.

fördelarna med jquery jämfört med javascript

Varför behöver vi abstrakta klasser i Java?

Vi behöver abstrakta klasser i Java av följande skäl:



  • Abstrakta klasser stöd Dynamisk metodupplösning i körtid
  • De hjälper användare att uppnå Lös koppling
  • Abstrakta klasser skiljer Metod Definition från den ärvda Underklasser
  • De tillhandahåller Standardfunktionalitet av den definierade metoden för alla underklasser
  • Abstrakta klasser ger en Mall för framtida specifika klasser
  • Den abstrakta klassen tillåter Koda Återanvändbarhet

Regler för användning av abstrakta klasser i Java

För att implementera en abstrakt klass i Java måste vi följa reglerna som beskrivs nedan:



  • En abstrakt klass måste förklaras med hjälp av abstrakt nyckelord.
  • Abstrakta klasser kan inkludera abstrakt och icke-abstrakt metoder.
  • En abstrakt klass kan inte vara instanserad.
  • De kan inkludera konstruktörer och statisk metoder.
  • En abstrakt klass inkluderar slutlig metoder.

Sätt att uppnå abstraktion i Java

Processen för abstraktion i Java kan uppnås med följande två metoder som nämns nedan:

  1. Implementering av en abstrakt klass
  2. Implementering av ett gränssnitt

Syntaxen för abstrakta klasser

Syntaxen för att definiera abstrakta klasser och abstrakta metoder är som följer:

abstrakt klass Edureka {}
abstrakt klass Metod ()

Praktiska exempel på abstrakta klasser

// Abstrakt klass

paket Abstrakt offentlig abstrakt klass Person {privat Strängnamn privat Sträng kön offentlig person (Sträng nm, Sträng gen) {detta.namn = nm this.gender = gen} offentligt abstrakt ogiltigt Studier () @ Override offentligt Sträng toString () {return ' Namn = '+ detta.namn +' :: Kön = '+ detta.gender}}

// Studentklass

paket Abstrakt offentlig klass Student utökar Person {privat int StudentID offentlig student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @Override public void Studing () {if (StudentID == 0 ) {System.out.println ('Studerar inte')} annat {System.out.println ('Pursuing a Degree in Bachelor of Engineering')}} offentlig statisk ogiltig huvud (String args []) {Personstudent = ny student ('Priya', 'Kvinna', 0) Personstudent1 = ny student ('Karan', 'Man', 201021) Personstudent2 = ny student ('Kumari', 'Kvinna', 101021) Personstudent3 = ny student (' John ',' Man ', 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 ())}}

Produktion:

Studerar inte
Forskar en examen i kandidatexamen
Forskar en examen i kandidatexamen
Forskar en examen i kandidatexamen
Namn = Priya :: Kön = Kvinna
Namn = Karan :: Kön = Man
Namn = Kumari :: Kön = Kvinna
Namn = John :: Kön = Man

vad är en instansvariabel i Java

Skillnad mellan gränssnitt och abstrakt klass

Gränssnitt Abstrakt klass
Kan bara ha abstrakta metoderKan ha abstrakta och icke-abstrakta metoder
Den har bara slutliga variablerDen innehåller icke-slutliga variabler
Den har endast statiska och slutliga variablerDen har statiska, icke-statiska, slutliga, icke-slutliga variabler
Kommer inte att genomföra abstraktklassenKan implementera ett gränssnitt
Implementeras med hjälp av 'implementerar' nyckelordImplementerad med 'utökar' nyckelord
Kan endast förlänga ett gränssnittKan utöka Java-klasser och gränssnitt
Medlemmar är offentliga som standardMedlemmar kan vara privata och skyddade

// Abstrakt klassexempel

paket abstactVSinterface abstrakt klass Shape {String objectName = '' Shape (String name) {this.objectName = name} abstract public double area () abstract public void draw ()} class Rectangle extends Shape {int längd, bredd Rektangel (int längd, int-bredd, Strängnamn) {super (namn) this.length = längd this.width = width} @Override public void draw () {System.out.println ('Rectangle is drawn')} @Override public double area () {retur (dubbel) (längd * bredd)}} klass Cirkel sträcker sig Form {dubbel pi = 3,14 int radie Cirkel (int radie, Strängnamn) {super (namn) this.radius = radie} @ Överstyr offentligt tomrum () System.out.println ('Cirkeln dras')} @Override offentligt dubbelområde () {retur (dubbel) ((pi * radie * radie) / 2)}} klass Edureka {offentligt statiskt tomrum huvud (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 ('Cirkelområdet är:' + cirkel.område ())}}

Produktion:

Area av rektangel: 600,0
Cirkelområde är: 628.0

// Exempel på gränssnitt

paket absVSint-gränssnitt Form {void draw () double area ()} class Rectangle implement Shape {int length, width Rectangle (int length, int width) {this.length = length this.width = width} @ Override public void draw () {System.out.println ('Rektangel har ritats')} @ Överstyr offentligt dubbelområde () {retur (dubbel) (längd * bredd)}} klass Cirkelredskap Form {dubbel pi = 3,14 intradie Cirkel (intradie) {this.radius = radius} @Override public void draw () {System.out.println ('Circle has been drawn')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} klass Edureka {public static void main (String [] args) {Shape rect = new Rectangle (20, 30) System.out.println ('Area of ​​rectangle:' + rect.area ()) Shape circle = ny cirkel (20) System.out.println ('Cirkelområde:' + cirkel.område ())}}

Produktion:

Area av rektangel: 600,0
Cirkelområde: 628.0

Med detta kommer vi till ett slut på den här artikeln. Jag hoppas att du har förstått vikten av abstraktion, syntax, funktionalitet, regler för abstraktion i Java och praktiska exempel relaterade till dem.

vad är aggregering i java

Nu när du har förstått grunderna i Java, kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för studenter och yrkesverksamma som vill vara Java-utvecklare. Kursen är utformad för att ge dig ett försprång till Java-programmering och träna dig för både kärn- och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Vår .

Har du en fråga till oss? Nämn det i kommentarsektionen i denna “Abstrakta klasser i Java” -bloggen så kommer vi tillbaka till dig så snart som möjligt.