Forskel mellem klasse og interface i Java

Forfatter: Laura McKinney
Oprettelsesdato: 2 April 2021
Opdateringsdato: 14 Kan 2024
Anonim
Synchronized vs ReadWriteLock vs StampedLock [Java Multithreading]
Video.: Synchronized vs ReadWriteLock vs StampedLock [Java Multithreading]

Indhold


Klasse og interface bruges begge til at oprette nye referencetyper. En klasse er en samling af felter og metoder, der fungerer på felter. En grænseflade har fuldstændigt abstrakte metoder, dvs. metoder uden nogen. En grænseflade ligner syntaktisk klassen, men der er en stor forskel mellem klasse og grænseflade, der er en klasse, kan instantieres, men en grænseflade kan aldrig blive instantieret. Så lad os lære noget mere forskel mellem en klasse og interface ved hjælp af et sammenligningskort, der er vist nedenfor.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningklassegrænseflade
GrundlæggendeEn klasse er instantieret for at oprette objekter.En grænseflade kan aldrig blive instantieret, da metoderne ikke er i stand til at udføre nogen handling under påberåbelse.
Søgeordklassegrænseflade
AdgangsspecifikationMedlemmerne af en klasse kan være private, offentlige eller beskyttede.Medlemmerne af en grænseflade er altid offentlige.
Metoder Metoderne i en klasse er defineret til at udføre en bestemt handling.Metoderne i en grænseflade er rent abstrakte.
Redskab / ForlængEn klasse kan implementere et hvilket som helst antal interface og kan kun udvide en klasse.En grænseflade kan udvide flere grænseflader, men kan ikke implementere nogen grænseflade.
Constructor En klasse kan have konstruktører til at initialisere variablerne.En grænseflade kan aldrig have en konstruktør, da der næppe er nogen variabel at initialisere.


Definition af klasse

En klasse er et vigtigt aspekt ved Java-programmering uden klasser, du ikke kan implementere et java-program. En klasse opretter referencetyper, og disse referencetyper bruges til at oprette objekter. En klasse har en underskrift og et organ. En underskrift af en klasse har klassens navn og oplysninger, der fortæller, om klassen har arvet en anden klasse. En klasses krop har felter og metoder, der fungerer på disse felter. En klasse oprettes ved hjælp af et nøgleord klasse. Lad os se, hvordan vi erklærer en klasse.

klasse class_name {/ * felter ... metoder * /}

Når en klasse er instantieret, indeholder hvert oprettet objekt en kopi af felter og metoder med dem. Felterne og medlemmerne, der er erklæret i en klasse, kan være statiske eller ikke-statiske. Statisk medlemsværdi er konstant for hvert objekt, hvorimod de ikke-statiske medlemmer initialiseres af hvert objekt forskelligt efter dets krav.


Medlemmer af en klasse har adgangsspecifikationer, der bestemmer synligheden og tilgængeligheden af ​​medlemmerne for brugeren eller til underklasser. Adgangsspecifikationerne er offentlige, private og beskyttede. En klasse kan arves af en anden klasse ved hjælp af adgangsspecifikationen, der bestemmer synligheden af ​​medlemmer af en superklasse (arvet klasse) i en underklasse (arveløs klasse). Således opfylder klassen konceptet for data skjul og indkapsling i objektorienteret programmering.

Definition af interface

En grænseflade er også blandt de referencetyper, der er defineret i Java. Betydningen af ​​en grænseflade er, at en klasse i Java kun kan arve en enkelt klasse. For at undgå denne begrænsning introducerede Java-designerne et koncept af interface. En grænseflade ligner syntaktisk en klasse, men den mangler feltdeklaration, og metoderne inde i en grænseflade har ingen implementering. En grænseflade erklæres ved hjælp af et nøgleord grænseflade. Lad os se erklæringen om en grænseflade.

interface interface_name {type var_name = value; type metode1 (parameter-liste); type method2 (parameter-liste); . . }

En grænseflade definerer ikke nogen metode der er erklæret inde i den, fordi den mangler i felter at operere på. Bare fordi enhver metode i en grænseflade ikke udfører nogen handling, kan en interface aldrig blive instantieret. Hvis en grænseflade har noget feltmedlem, skal det initialiseres på tidspunktet for deres erklæring. En grænseflade indeholder aldrig nogen konstruktører, da den mangler i feltmedlemmer til at blive initialiseret. Så en grænseflade definerer kun, hvad en klasse skal gøre i stedet for, hvordan den skal gøre.

En interface, der først er oprettet, kan implementeres af et hvilket som helst antal klasser ved hjælp af et nøgleord redskaber. Men de klasser, der implementerer en grænseflade, skal definere alle metoder i en grænseflade. En grænseflade kan også arve en anden grænseflade vha forlænge nøgleord. Hvis en klasse implementerer en grænseflade, der udvider en anden grænseflade. Derefter skal en klasse definere metoderne for begge grænseflader, der vises i en kæde. Metoderne i en grænseflade skal altid være offentlige, da de skal have adgang til de klasser, der implementerer dem.

Vigtige forskelle mellem klasse og interface i Java

  1. En klasse kan instantieres ved at oprette dens objekter. En grænseflade er aldrig instantiseret, da metoderne, der er erklæret i en grænseflade, er abstrakte og udfører ingen handling, så der er ingen brug af at indstille nogen grænseflade.
  2. En klasse erklæres ved hjælp af en nøgleordsklasse. På samme måde oprettes en grænseflade ved hjælp af en nøgleordsgrænseflade.
  3. Medlemmer af en klasse kan have adgangsspecifikationen som offentlig, privat og beskyttet. Men medlemmerne af en grænseflade er altid offentlige, da de skal have adgang til de klasser, der implementerer dem.
  4. Metoderne inde i en klasse er defineret til at udføre en handling på de felter, der er erklæret i klassen. Da interface mangler i angivelse af felter, er metoderne inde i en grænseflade rent abstrakte.
  5. En klasse kan implementere et hvilket som helst antal grænseflader, men kan kun udvide en super klasse. En grænseflade kan udvide ethvert antal grænseflader, men kan ikke implementere nogen grænseflade.
  6. En klasse har konstruktører defineret inde i det for at få variabelen initialiseret. Men en grænseflade har ingen konstruktører, da der ikke er nogen felter, der skal initialiseres. Felterne i en grænseflade initialiseres kun på tidspunktet for deres erklæring.

Konklusion:

Både klasser og grænseflader har deres egen betydning. En klasse bruges, når vi skal definere, hvordan opgaven skal udføres. En grænseflade bruges, når vi skal vide, hvilken opgave der skal udføres.