Anbefalt, 2024

Redaksjonens

Forskjellen mellom klasse og grensesnitt i Java

Klasse og grensesnitt begge brukes til å opprette nye referansetyper. En klasse er en samling av felt og metoder som opererer på felt. Et grensesnitt har fullt abstrakte metoder, dvs. metoder med ingen. Et grensesnitt er syntaktisk likt klassen, men det er en stor forskjell mellom klasse og grensesnitt som en klasse kan bli instantiated, men et grensesnitt kan aldri bli instantiated. Så la oss lære litt mer forskjell mellom en klasse og et grensesnitt ved hjelp av et sammenligningsdiagram som er vist nedenfor.

Sammenligningstabel

Grunnlag for sammenligningKlasseInterface
grunn~~POS=TRUNCEn klasse er instantiated for å lage objekter.Et grensesnitt kan aldri bli instantiated som metodene ikke klarer å utføre noen handlinger på å påkalle.
søkeordklassegrensesnitt
Tilgang spesifisererMedlemmene av en klasse kan være private, offentlige eller beskyttede.Medlemmene av et grensesnitt er alltid offentlige.
metoderMetodene til en klasse er definert for å utføre en bestemt handling.Metodene i et grensesnitt er rent abstrakte.
Implementere / ExtendEn klasse kan implementere et hvilket som helst antall grensesnitt og kan utvide kun én klasse.Et grensesnitt kan utvide flere grensesnitt, men kan ikke implementere noe grensesnitt.
ConstructorEn klasse kan ha konstruktører til å initialisere variablene.Et grensesnitt kan aldri ha en konstruktør, da det er knapt noen variabel å initialisere.

Definisjon av klasse

En klasse er et viktig aspekt av Java programmering uten klasser du ikke kan implementere et java program. En klasse oppretter referansetyper, og disse referansetypene brukes til å lage objekter. En klasse har en signatur og en kropp. Undertegnelse av en klasse har klassens navn og informasjon som forteller om klassen har arvet en annen klasse. Kroppen i en klasse har felt og metoder som opererer på disse feltene. En klasse er opprettet ved hjelp av en søkeordsklasse. Lar oss se hvordan å erklære en klasse.

 klasse klassenavn {/ * felt ... metoder * /} 

Når en klasse er instantiated, inneholder hvert objekt opprettet en kopi av felt og metoder med dem. Feltene og medlemmene deklarert i en klasse kan være statiske eller ikke-statiske. Statisk medlemmer verdi er konstant for hver gjenstand mens de ikke-statiske medlemmene initialiseres av hvert objekt annerledes i henhold til kravet.

Medlemmer av en klasse har tilgangsspesifikatorer som bestemmer synligheten og tilgjengeligheten til medlemmene til brukeren eller til underklassene. Tilgangspesifikatorene er offentlige, private og beskyttede. En klasse kan arves av en annen klasse ved hjelp av tilgangsspesifikatoren som bestemmer synligheten til medlemmer av en superklasse (arvet klasse) i en underklasse (arvelig klasse). Dermed oppfyller klassen begrepet data skjuling og innkapsling i Objektorientert programmering.

Definisjon av grensesnitt

Et grensesnitt er også blant referansetypene som er definert i Java. Betydningen av et grensesnitt er at i Java kan en klasse bare arve en enkelt klasse. For å unngå denne begrensningen introduserte designerne av Java et grensesnittbegrep. Et grensesnitt er synaktisk lik en klasse, men det mangler i feltdeklarasjon og metodene i et grensesnitt har ingen implementering. Et grensesnitt er erklært ved hjelp av et søkeordgrensesnitt. La oss se på grensesnittets erklæring.

 grensesnitt grensesnittnavn {type var_navn = verdi; skriv metode1 (parameter-liste); skriv metode2 (parameter-liste); . . } 

Et grensesnitt definerer ikke noen metode som er deklarert inne i den fordi den mangler i felt å operere på. Bare fordi en hvilken som helst metode i et grensesnitt ikke utfører noen handling, kan et grensesnitt aldri bli instantiated. Hvis et grensesnitt har et feltelement, må det initialiseres på tidspunktet for deres erklæring. Et grensesnitt inneholder aldri noen konstruktører som det mangler i feltmedlemmer for å bli initialisert. Så, et grensesnitt definerer bare hva en klasse må gjøre i stedet for hvordan den skal gjøre.

Et grensesnitt som en gang er opprettet, kan implementeres av et hvilket som helst antall klasser ved hjelp av søkeordredskaper. Men klassene som implementerer et grensesnitt, må definere alle metodene i et grensesnitt. Et grensesnitt kan også arve et annet grensesnitt ved å utvide søkeord. Hvis en klasse implementerer et grensesnitt som strekker seg til et annet grensesnitt. Deretter må en klasse definere metodene for både grensesnittene som vises i en kjede. Metodene i et grensesnitt må alltid være offentlige da de må nås av klassene som implementerer dem.

Nøkkelforskjeller mellom klasse og grensesnitt i Java

  1. En klasse kan bli instantiated ved å lage sine objekter. Et grensesnitt er aldri instantiated som metodene deklarert i et grensesnitt er abstrakte og utfører ikke noen handling, så det er ikke bruk av å instantiere noe grensesnitt.
  2. En klasse er erklært ved hjelp av en søkeordsklasse. På samme måte er et grensesnitt opprettet ved hjelp av et søkeordgrensesnitt.
  3. Medlemmene av en klasse kan ha tilgangen spesifisert som offentlig, privat, beskyttet. Men medlemmene av et grensesnitt er alltid offentlige da de må nås av klassene som implementerer dem.
  4. Metodene i en klasse er definert for å utføre en handling på feltene deklarert i klassen. Som grensesnitt mangler i feltdeklarasjonen, er metodene i et grensesnitt rent abstrakt.
  5. En klasse kan implementere et hvilket som helst antall grensesnitt, men kan bare utvide en superklasse. Et grensesnitt kan utvide et hvilket som helst antall grensesnitt, men kan ikke implementere noe grensesnitt.
  6. En klasse har konstruktører definert i den for å få variabelen initialisert. Men et grensesnitt har ingen konstruktører da det ikke er noen felt som skal initialiseres. Feltene til et grensesnitt initialiseres kun når de erklæres.

Konklusjon:

Både klasser og grensesnitt har sin egen betydning. En klasse brukes når vi må definere hvordan oppgaven skal gjøres. Et grensesnitt brukes når vi trenger å vite hvilken oppgave som skal utføres.

Top