Hvad er brugen af ​​abstrakt metode i Java?



Denne artikel om abstrakt metode i Java hjælper dig med at lære, hvordan du opnår abstraktion, når du bruger programmering af abstrakte klasser og metoder i Java

På ethvert programmeringssprog, abstraktion betyder at skjule de irrelevante detaljer for brugeren for kun at fokusere på de væsentlige detaljer for at øge effektiviteten og derved reducere kompleksiteten. I Java opnås abstraktion ved hjælp afabstrakte klasser og metoder. Lad os lære mere om den abstrakte metode i .

Emnerne diskuteret i denne artikel er som følger:





Hvad er en abstrakt klasse?

I enhver , en klasse, der erklæres med nøgleordet abstrakt er kendt som en abstrakt klasse. An abstrakt klasse fanger fælles karakteristika for underklasser og kan eller måske ikke indeholde nogen abstrakt metode . Det kan ikke instantieres, men kan kun bruges som en superklasse af dets underklasser.

Nedenfor er nogle vigtige punkter vedrørende abstrakt klasse:



  • En abstrakt klasse kan have konstruktører og statiske metoder
  • Det kan have endelige metoder , de tvinger underklassen til ikke at ændre metodens krop
  • Du kan bruge en abstrakt klasse ved at arve den fra en anden klasse og derefter give implementeringer til de abstrakte metoder i den
  • Hvis en abstrakt klasse ikke har nogen metodeimplementering, er det altid bedre at bruge interface

En klasse erklæret abstrakt kan eller ikke omfatte abstrakte metoder. Men hvad er egentlig en abstrakt metode?

Hvad er en abstrakt metode?

En metode erklæret uden organ (ingen implementering)inden for en abstrakt klasse er en abstrakt metode. Med andre ord, hvis du vil have en klasse at indeholde en bestemt metode, men du ønsker, at den faktiske implementering af denne metode bestemmes af underklasser, så kan du erklære metoden i overordnet klasse som et abstrakt.

Opret en kopi af objektet Java

Sådan ser en abstrakt metode ud i Java:



abstrakt offentligt ugyldigt habitat ()

Nøglefunktioner ved abstrakt metode

Nedenfor er de vigtigste funktioner i abstrakt metode:

  • Abstrakte metoder har ikke en implementering (body), de har bare metodesignatur som vist i ovenstående eksempel
  • Hvis en klasse har en abstrakt metode, skal den erklæres abstrakt, og vice versa er ikke sandt
  • I stedet for krøllede seler vil en abstrakt metode have semikolon () i slutningen
  • Hvis en almindelig klasse udvider en abstrakt klasse, så skal klassen være nødt til at implementere alle de abstrakte metoder i denne klasse, ellers skal den også erklæres abstrakt

Eksempel på program: Abstrakt metode i Java

Se eksemplet på programmet for at forstå, hvordan abstraktion opnås ved hjælp af abstrakte klasser og abstrakte metoder. Tag et kig.

pakke MyPackage // abstrakt klasse abstrakt klasse Animal {String AnimalName = '' Animal (String name) {this.AnimalName = name} // erklær ikke-abstrakte metoder // den har standardimplementering offentlig ugyldig BasicInfo (strengdetaljer) {System. out.println (this.AnimalName + '' + detaljer)} // abstrakte metoder, som vil blive // ​​implementeret af dens underklasse (r) abstrakt offentlig ugyldig habitat () abstrakt offentlig ugyldig åndedræt ()} klasse Terrestrisk udvider dyr {// constructor Terrestrial (String name) {super (name)} @ Override public void habitat () {System.out.println ('leave on land and')} @ Override public void respiration () {System.out.println ('respire gennem lunger eller luftrør. ')}} klasse Aquatic extends Animal {// constructor Aquatic (String name) {super (name)} @ Override public void habitat () {System.out.println (' It leaves in water and ') } @Override offentlig ugyldig åndedræt () {System.out.println ('respire gennem gæller eller deres hud.')}} Klasse AbstractClassDemo {public static voi d main (String [] args) {// oprettelse af objektet for jordbaseret klasse // og anvendelse af Animal class reference. Dyreobjekt1 = nyt jordbaseret ('Mennesker') objekt1.BasicInfo ('er jordiske væsener, de') objekt1.habitat () objekt1.respiration () System.out.println ('') // oprettelse af objekter i cirkelklasse Dyr object2 = nyt Aquatic ('Fishes') objekt2.BasicInfo ('er aqautic væsener, de') object2.habitat () object2.respiration ()}}

Produktion:

Metoden BasicInfo () er en som bruges af begge Jordbaseret og Akvatisk klasser. Metoderne levested () og respiration() er abstrakte metoder, og de har ingen implementering, kun signaturen. Jordbaseret og Akvatisk klasser skal give deres egen implementering af begge disse metoder. Bemærk også, at begge metoder begynder med nøgleordet abstrakt . På dette tidspunkt undrer du dig måske over, hvordan det er abstrakt klasse forskellig fra interface .

Interface i Java

En anden måde at opnå abstraktion i Java er ved hjælp af grænseflader . En grænseflade er en samling af abstrakte metoder, den har ikke noget konkret i modsætning til en abstrakt klasse. Men i modsætning til abstrakt klasse giver en grænseflade fuld abstraktion i Java. Det kan have både metoder og variabler ligesom en klasse. De metoder, der er angivet i en grænseflade, er imidlertid abstrakte som standard.

Abstrakte klasser og grænseflader er de to vigtigste byggestenaf . Selvom begge primært bruges til abstraktion, er de meget forskellige fra hinanden og kan ikke bruges om hinanden.

afslut et program i java

Dette bringer os til slutningen af ​​denne artikel om 'Abstrakt metode i Java'. Jeg har dækket en af ​​de hyppigst stillede , som er en abstrakt klasse i Java.

Sørg for at øve så meget som muligt, og vend din oplevelse tilbage.

Tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne 'Abstrakte metode i Java' artikel, og vi vender tilbage til dig hurtigst muligt.