En grænseflade er en referencetype, der bruges til at håndhæve en kontrakt med en klasse. En kontrakt refererer til en forpligtelse til at implementere de metoder, som en grænseflade definerer.

Grænseflader giver en abstraktion mellem de metoder, de definerer, og hvordan brugeren implementerer dem i en klasse. En praktisk anvendelse af dette er i API'er (Application Programming Interfaces).

API'er giver dit program mulighed for at kommunikere med andre programmer uden at vide, hvordan de implementeres. Dette er vigtigt af både ejendomsretlige årsager (for virksomheden, der ejer rettighederne) og for let udvikling fra din side.

Lad os se på, hvordan du bruger Java -grænseflader.

Definere grænseflader

For at erklære en grænseflade skal du placere søgeordet grænseflade før interface -navnet.

interface Bil {
// konstante erklæringer, hvis nogen
int dæk = 4;
// metodesignaturer
int lys (int lysstyrke);
int drej (int dæk, strengretning) {
// lidt kode
}
}

I din grænsefladeoverskrift kan du også inkludere dets synlighedsniveau før søgeordet grænseflade.

instagram viewer

Værdierne i en grænseflade er konstante. Disse værdier er som standard offentligt, statisk og endelig. Derfor er det ikke nødvendigt at bruge disse søgeord, mens du erklærer værdier i brødteksten i en grænseflade.

Relaterede: Sådan administreres variabelt omfang i Java

En grænseflades krop kan også have standard, abstrakt, statisk metoder. Disse metoder er som standard offentlig, så det er ikke nødvendigt at angive disse adgangsmodifikatorer, når de deklareres.

Abstrakte metoder erklæres ved at udelade de krøllede parenteser i en metodes krop. Se linje 7 i koden ovenfor. Statiske metoder erklæres ved at fortsætte metodenavnet med søgeordet statisk & standardmetoder erklæres med Standard modifikator.

Nu ville det være et godt tidspunkt at nævne, at du skal bruge metoder, der er angivet i en grænseflade i alle klasser, der implementerer det. Hvis du ikke gør det, får kompilatoren til at "håndhæve kontrakten" ved at give en kompilationsfejl.

Denne særlige egenskab ved grænseflader kan have nogle ulemper. Overvej et tilfælde, hvor en udbyder af programmeringsgrænseflader (API) beslutter at tilføje flere metoder til deres grænseflader, men flere apps er baseret på de gamle grænseflader. Udviklere, der bruger de gamle grænseflader i deres programmer, skulle omskrive deres kode, hvilket ikke er praktisk.

Så det er der Standard metoder kommer ind. De gør det muligt for API -udbydere at tilføje flere metoder til deres grænseflader, samtidig med at de sikrer binær kompatibilitet med ældre grænsefladeversioner.

standard int getDirection (strengkoordinater) {
// skriv en kode for at give en standardimplementering
}

Ovenstående metode viser, hvordan en standardmetode kaldes getDirection er erklæret. Bemærk, at du skal inkludere en implementering af en standardmetode, når du skriver den.

Brug af grænseflader

Nu har vi defineret grænseflader i Java, vi kan gå videre til, hvordan du kan implementere dem. Det finder du ud af i afsnittet herunder.

Implementering af grænseflader

Brug søgeordet for at implementere en grænseflade redskaber ved hjælp af denne syntaks:

klasse A implementerer interface P {
}

Husk, at du skal bruge alle grænseflademetoder i klassen. Du kan kun ignorere denne regel, hvis en af ​​metoderne er defineret som Standard i grænsefladen.

Relaterede: En introduktion til brug af sammenkædede lister i Java

Hvis du vil have, at din klasse skal implementere flere grænseflader, kan du adskille dem ved hjælp af kommaer i din overskriftsdeklaration.

Eksempel:

klasse A implementerer interface P, Q, R {
}

Hvis klassen, der implementerer grænsefladen, er en underklasse, skal du bruge syntaksen herunder:

klasse A udvider B implementerer C, D {
}

Grænseflader muliggør flere arv i Java. Normalt kan en klasse kun udvide en klasse (enkelt arv). Grænseflader er den eneste måde, hvorpå Java kan udføre flere arv.

Grænseflader kan også udvide andre grænseflader, ligesom en klasse kan udvide en anden klasse. Underordnet grænseflade arver metoderne for den grænseflade, den udvider.

Se eksemplet herunder:

interface A udvider B { 
}

Bortset fra at bruge standardmetoder til at ændre en grænseflade uden at kræve, at udviklerne ændrer deres nuværende programmer, kan du også udvide de eksisterende grænseflader.

Nu har du noget grundlæggende viden om Java -grænseflader

Grænseflader i Java demonstrerer abstraktion, en af ​​de fire søjler i objektorienteret programmering. Polymorfisme er en af ​​de fire søjler. Det refererer til en metodes evne til at antage mange former.

Du kan implementere polymorfisme i Java gennem metodeoverbelastning eller metodeoverstyring. Næste på din Java -læseliste bør være, hvordan du implementerer disse funktioner.

DelTweetE -mail
Polymorfisme i Java: Sådan overbelastes eller tilsidesættes metoder

Skær ned på den kode, du skriver med metodeoverbelastning og tilsidesættelse.

Læs Næste

Relaterede emner
  • Programmering
  • Java
  • Programmeringssprog
  • Programmering
Om forfatteren
Jerome Davidson (25 artikler udgivet)

Jerome er personaleforfatter på MakeUseOf. Han dækker artikler om programmering og Linux. Han er også en kryptoentusiast og holder altid øje med kryptoindustrien.

Mere fra Jerome Davidson

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere