Abstrakte klasser i hjælpe brugerne med at opnå abstraktion, som er den mest afgørende objektorienterede programmeringspraksis, der følges under processen med softwaredesign. I denne artikel vil vi diskutere terminologien for abstrakte klasser gennem følgende docket.
- Hvad er abstrakte klasser i Java?
- Hvorfor har vi brug for abstrakte klasser i Java?
- Regler for brug af abstrakte klasser i Java
- Måder at opnå abstraktion i Java
- Syntaksen for abstrakte klasser
- Praktiske eksempler på abstrakte klasser
- Forskel mellem interface og abstrakt klasse
Hvad er abstrakte klasser i Java?
Abstrakte klasser i fungere som en grænse mellem implementeringsmetoden og dens funktionalitet. Det bruges til at udveksle funktionaliteten mellem Beton klassemedlemmer og Abstrakt Klasse.
Abstrakte klasser betragtes som de klasser, der skjuler Metode Implementering detaljer fra brugeren og viser kun Metode Funktionalitet. De erklæres ved hjælp af nøgleordet abstrakt . Disse metoder kan omfatte Abstrakt og Ikke-abstrakt metoder i dem.
parse xml-fil i java
Hvorfor har vi brug for abstrakte klasser i Java?
Vi har brug for abstrakte klasser i Java af følgende grunde:
- Abstrakt undervisning understøtter Dynamisk metodeopløsning i løbetid
- De hjælper brugerne med at opnå Løs kobling
- Abstrakte klasser adskiller Metodedefinition fra de arvede Underklasser
- De giver den Standardfunktionalitet af den definerede metode for alle underklasser
- Abstrakte klasser giver en Skabelon til fremtidige specifikke klasser
- Den abstrakte klasse tillader det Kode Genanvendelighed
Regler for brug af abstrakte klasser i Java
For at implementere en abstrakt klasse i Java skal vi følge reglerne som beskrevet nedenfor:
- En abstrakt klasse skal erklæres ved hjælp af abstrakt nøgleord.
- Abstrakte klasser kan omfatte abstrakt og ikke-abstrakt metoder.
- En abstrakt klasse kan ikke være instantieret.
- De kan inkludere konstruktører og statisk metoder.
- En abstrakt klasse inkluderer endelig metoder.
Måder at opnå abstraktion i Java
Processen med abstraktion i Java kan opnås ved hjælp af følgende to metoder som nævnt nedenfor:
hvad er en nøglefejl i python
- Implementering af en abstrakt klasse
- Implementering af et interface
Syntaksen for abstrakte klasser
Syntaksen til definition af abstrakte klasser og abstrakte metoder er som følger:
abstrakt klasse Edureka {}
abstrakt klasse Metode ()
Praktiske eksempler på abstrakte klasser
// Abstrakt klasse
pakke Abstrakt offentlig abstrakt klasse Person {privat String navn privat String køn offentlig person (String nm, String gen) {this.name = nm this.gender = gen} offentlig abstrakt ugyldigt Studerende () @ Overstyr offentlig String toString () {return ' Navn = '+ dette.navn +' :: Køn = '+ dette.gender}}
// Studenterklasse
pakke Abstrakt offentlig klasse Student udvider Person {privat int StudentID offentlig student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @ Overstyr offentlig tomrum Studerer () {if (StudentID == 0 ) {System.out.println ('Not Studing')} ellers {System.out.println ('Forfølger en grad i Bachelor of Engineering')}} offentlig statisk ugyldig main (String args []) {Personstudent = ny studerende ('Priya', 'Kvinde', 0) Personstudent1 = ny studerende ('Karan', 'Mand', 201021) Personstudent2 = ny studerende ('Kumari', 'Kvinde', 101021) Personstudent3 = ny studerende (' John ',' Mand ', 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:
Studerer ikke
Forfølger en grad i Bachelor of Engineering
Forfølger en grad i Bachelor of Engineering
Forfølger en grad i Bachelor of Engineering
Navn = Priya :: Køn = Kvinde
Navn = Karan :: Køn = Mand
Navn = Kumari :: Køn = Kvinde
Navn = John :: Køn = Mand
Forskel mellem interface og abstrakt klasse
Interface | Abstrakt klasse |
Kan kun have abstrakte metoder | Kan have abstrakte og ikke-abstrakte metoder |
Den har kun endelige variabler | Det inkluderer ikke-endelige variabler |
Den har kun statiske og endelige variabler | Det har statiske, ikke-statiske, endelige, ikke-endelige variabler |
Implementerer ikke abstraktklassen | Kan implementere et interface |
Implementeret ved hjælp af 'implementerer' Keyword | Implementeret ved hjælp af 'udvider' nøgleord |
Kan kun udvide et interface | Kan udvide Java-klasser og grænseflader |
Medlemmer er som standard offentlige | Medlemmer kan være private og beskyttede |
// Abstrakt klasseeksempel
pakke abstactVSinterface abstrakt klasse Shape {String objectName = '' Shape (String name) {this.objectName = name} abstract public double area () abstract public void draw ()} class Rectangle extends Shape {int længde, bredde Rektangel (int længde, int bredde, String navn) {super (navn) this.length = længde this.width = width} @ Override public void draw () {System.out.println ('Rectangle is drawn')} @ Override public double area () {retur (dobbelt) (længde * bredde)}} klasse Cirkel udvides figur {dobbelt pi = 3,14 int radius Cirkel (int radius, String navn) {super (navn) this.radius = radius} @ Overstyr offentlig ugyldig tegning () { System.out.println ('Cirkel er tegnet')} @ Override offentligt dobbeltområde () {return (dobbelt) ((pi * radius * radius) / 2)}} klasse Edureka {offentlig statisk ugyldig hoved (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 ('Cirkelareal er:' + cirkel.area ())}}
Produktion:
Areal af rektangel: 600,0
Cirkelareal er: 628.0
// Eksempel på interface
pakke absVSint-interface Form {ugyldig tegning () dobbelt areal ()} klasse Rektangel implementerer figur {int længde, bredde Rektangel (int længde, int bredde) {this.length = længde this.width = bredde} @ Overstyr offentlig tom tegning () {System.out.println ('Rektangel er tegnet')} @ Override offentligt dobbeltområde () {return (dobbelt) (længde * bredde)}} klasse Cirkelværktøjer Form {dobbelt pi = 3,14 int radius Cirkel (int radius) {this.radius = radius} @Override public void draw () {System.out.println ('Circle has been drawn')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} klasse 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 ('Område af cirkel:' + cirkel.area ())}}
Produktion:
Areal af rektangel: 600,0
Cirkelområde: 628.0
Med dette kommer vi til slutningen af denne artikel. Jeg håber du har forstået vigtigheden af abstraktion, syntaks, funktionalitet, regler for abstraktion i Java og praktiske eksempler relateret til dem.
Nu hvor du har forstået det grundlæggende i Java, skal du tjekke af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Forår .
Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne 'Abstrakte klasser i Java' -blog, og vi vender tilbage til dig hurtigst muligt.
hvad er jit i java