Abstrakte klasser i hjelpe brukerne med å oppnå abstraksjon, som er den mest avgjørende objektorienterte programmeringspraksisen som følges under prosessen med programvaredesign. I denne artikkelen skal vi diskutere terminologien til abstrakte klasser gjennom følgende docket.
- Hva er abstrakte klasser i Java?
- Hvorfor trenger vi abstrakte klasser i Java?
- Regler for bruk av abstrakte klasser i Java
- Måter å oppnå abstraksjon på Java
- Syntaksen for abstrakte klasser
- Praktiske eksempler på abstrakte klasser
- Forskjellen mellom grensesnitt og abstrakt klasse
Hva er abstrakte klasser i Java?
Abstrakte klasser i fungere som en grense mellom implementeringsmetoden og dens funksjonalitet. Den brukes til å utveksle funksjonaliteten mellom Betong klassemedlemmer og Abstrakt Klasse.
Abstrakte klasser betraktes som de klassene som skjuler Metode Implementering detaljer fra brukeren og viser bare Metode Funksjonalitet. De blir erklært ved hjelp av nøkkelordet abstrakt . Disse metodene kan inkludere Abstrakt og Ikke-abstrakt metoder i dem.
hvordan du skriver varsel i javascript
Hvorfor trenger vi abstrakte klasser i Java?
Vi trenger abstrakte klasser i Java av følgende grunner:
- Støtte for abstrakte klasser Dynamisk metodeoppløsning i kjøretid
- De hjelper brukere å oppnå Løs kobling
- Abstrakte klasser skiller Metodedefinisjon fra de arvede Underklasser
- De gir Standard funksjonalitet av den definerte metoden for alle underklasser
- Abstrakte klasser gir en Mal for fremtidige spesifikke klasser
- Den abstrakte klassen tillater det Kode Gjenbrukbarhet
Regler for bruk av abstrakte klasser i Java
For å implementere en abstrakt klasse i Java, må vi følge reglene som beskrevet nedenfor:
- En abstrakt klasse må erklæres ved hjelp av abstrakt nøkkelord.
- Abstrakte klasser kan inkludere abstrakt og ikke-abstrakt metoder.
- En abstrakt klasse kan ikke være instansert.
- De kan inkludere konstruktører og statisk metoder.
- En abstrakt klasse inkluderer endelig metoder.
Måter å oppnå abstraksjon på Java
Prosessen med abstraksjon i Java kan oppnås ved følgende to metoder som nevnt nedenfor:
- Implementering av en abstrakt klasse
- Implementere et grensesnitt
Syntaksen for abstrakte klasser
Syntaksen for å definere 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 kjønn offentlig person (String nm, String gen) {this.name = nm this.gender = gen} offentlig abstrakt ugyldig Studier () @ Overstyr offentlig String toString () {return ' Name = '+ this.name +' :: Gender = '+ this.gender}}
// Studentklasse
c ++ hopp til linje
pakke Abstrakt offentlig klasse Student utvider Person {privat int StudentID offentlig Student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @ Overstyr offentlig tomrom Studerer () {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 = ny student ('Priya', 'Kvinne', 0) Person student1 = ny student ('Karan', 'Mann', 201021) Person student2 = ny student ('Kumari', 'Kvinne', 101021) Person student3 = ny student (' John ',' Mann ', 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 ())}}
Produksjon:
Studerer ikke
Fortsetter en grad i Bachelor of Engineering
Fortsetter en grad i Bachelor of Engineering
Fortsetter en grad i Bachelor of Engineering
Navn = Priya :: Kjønn = Kvinne
Navn = Karan :: Kjønn = Mann
Navn = Kumari :: Kjønn = Kvinne
Navn = John :: Kjønn = Mann
Forskjellen mellom grensesnitt og abstrakt klasse
Grensesnitt | Abstrakt klasse |
Kan bare ha abstrakte metoder | Kan ha abstrakte og ikke-abstrakte metoder |
Den har bare endelige variabler | Den inkluderer ikke-endelige variabler |
Den har bare statiske og endelige variabler | Den har statiske, ikke-statiske, endelige, ikke-endelige variabler |
Vil ikke implementere abstraktklassen | Kan implementere et grensesnitt |
Implementert ved hjelp av 'implementerer' Keyword | Implementert ved hjelp av 'utvider' søkeord |
Kan bare utvide et grensesnitt | Kan utvide Java-klasser og grensesnitt |
Medlemmer er offentlige som standard | Medlemmer kan være private og beskyttet |
// 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 extensions Shape {int length, width Rectangle (int length, int bredde, strengnavn) {super (navn) this.length = lengde this.width = width} @ Override public void draw () {System.out.println ('Rectangle is drawn')} @ Override public double area () {retur (dobbel) (lengde * bredde)}} klasse Sirkel strekker seg Form {dobbel pi = 3,14 int radius Sirkel (int radius, strengnavn) {super (navn) this.radius = radius} @ Overstyr offentlig tom tegning () { System.out.println ('Circle is drawn')} @ 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 ('Sirkelområdet er:' + sirkel.area ())}}
Produksjon:
Areal av rektangel: 600,0
Sirkelområdet er: 628.0
// Grensesnitteksempel
pakke absVSint-grensesnitt Form {ugyldig tegning () dobbelt område ()} klasse Rektangel implementerer Form {int lengde, bredde Rektangel (int lengde, int bredde) {this.length = lengde this.width = bredde} @ Overstyr offentlig tom tegning () {System.out.println ('Rektangel er tegnet')} @ Overstyr offentlig dobbeltområde () {retur (dobbelt) (lengde * bredde)}} klasse Sirkelimplement Form {dobbelt pi = 3,14 int radius Sirkel (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 sirkel (20) System.out.println ('Område av sirkel:' + sirkel.område ())}}
Produksjon:
binært søkeprogram i java
Areal av rektangel: 600,0
Område av sirkel: 628.0
Med dette kommer vi til en slutt på denne artikkelen. Jeg håper du har forstått viktigheten av abstraksjon, syntaks, funksjonalitet, regler for abstraksjon i Java og praktiske eksempler relatert til dem.
Nå som du har forstått det grunnleggende om Java, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Vår .
Har du spørsmål til oss? Nevn det i kommentarfeltet i denne 'Abstrakte klasser i Java' -bloggen, så kommer vi tilbake til deg så snart som mulig.