Et grensesnitt er en referansetype som brukes til å håndheve en kontrakt med en klasse. En kontrakt refererer til en forpliktelse til å implementere metodene som et grensesnitt definerer.
Grensesnitt gir en abstraksjon mellom metodene de definerer og hvordan brukeren implementerer dem i en klasse. Et praktisk brukstilfelle av dette er i APIer (Application Programming Interfaces).
APIer lar programmet kommunisere med andre programmer uten å vite hvordan de implementeres. Dette er viktig av både proprietære årsaker (for selskapet som eier rettighetene) og for enkel utvikling fra din side.
La oss ta en titt på hvordan du bruker Java -grensesnitt.
Definere grensesnitt
For å erklære et grensesnitt, plasser søkeordet grensesnitt før grensesnittnavnet.
grensesnitt Bil {
// konstante erklæringer, hvis noen
int dekk = 4;
// metodesignaturer
int lys (int lysstyrke);
int sving (int dekk, strengretning) {
// litt kode
}
}
I grensesnittoverskriften kan du også inkludere synlighetsnivået før søkeordet grensesnitt.
Verdiene i et grensesnitt er konstante. Disse verdiene er som standard offentlig, statisk og endelig. Derfor er det ikke nødvendig å bruke disse søkeordene mens du deklarerer verdier i selve grensesnittet.
I slekt: Hvordan administrere variabelt omfang i Java
Et grensesnitt kan kroppen også ha standard, abstrakt, statisk metoder. Disse metodene er som standard offentlig, så det er ikke nødvendig å angi disse tilgangsmodifikatorene når du deklarerer dem.
Abstrakte metoder deklareres ved å utelate de krøllete parentesene til en metodes kropp. Se linje 7 i koden ovenfor. Statiske metoder deklareres ved å fortsette metodenavnet med søkeordet statisk & standardmetoder deklareres med misligholde modifikator.
Det ville være et godt tidspunkt å nevne at du må bruke metoder som er deklarert i et grensesnitt i alle klasser som implementerer det. Hvis du ikke gjør det, vil kompilatoren "håndheve kontrakten" ved å gi en kompilasjonsfeil.
Denne spesielle egenskapen til grensesnitt kan ha noen ulemper. Vurder et tilfelle der en applikasjonsprogrammeringsgrensesnitt (API) -leverandør bestemmer seg for å legge til flere metoder i grensesnittene, men flere apper er basert på de gamle grensesnittene. Utviklere som bruker de gamle grensesnittene i programmene deres, må skrive om koden sin, noe som ikke er praktisk.
Så, det er der misligholde metoder kommer inn. De gjør det mulig for API -leverandører å legge til flere metoder i grensesnittene sine, samtidig som de sikrer binær kompatibilitet med eldre grensesnittversjoner.
standard int getDirection (strengkoordinater) {
// skriv litt kode for å gi en standardimplementering
}
Metoden ovenfor viser hvordan en standardmetode kalles getDirection er erklært. Legg merke til at du må inkludere en implementering av en standardmetode når du skriver den.
Bruke grensesnitt
Nå som vi har definert grensesnitt i Java, kan vi gå videre til hvordan du kan implementere dem. Du finner dette ut i delen nedenfor.
Implementere grensesnitt
Bruk søkeordet for å implementere et grensesnitt redskaper bruker denne syntaksen:
klasse A implementerer grensesnitt P {
}
Husk at du må bruke alle grensesnittmetodene i klassen. Du kan bare ignorere denne regelen hvis en av metodene er definert som misligholde i grensesnittet.
I slekt: En introduksjon til bruk av koblede lister i Java
Hvis du vil at klassen din skal implementere flere grensesnitt, kan du skille dem ved hjelp av kommaer i overskriftsdeklarasjonen.
Eksempel:
klasse A implementerer grensesnittet P, Q, R {
}
Hvis klassen som implementerer grensesnittet er en underklasse, bruker du syntaksen nedenfor:
klasse A strekker B implementerer C, D {
}
Grensesnitt muliggjør flere arv i Java. Vanligvis kan en klasse bare utvide en klasse (enkelt arv). Grensesnitt er den eneste måten Java kan utføre flere arv.
Grensesnitt kan også utvide andre grensesnitt, akkurat som en klasse kan utvide en annen klasse. Barnegrensesnittet arver metodene for grensesnittet det utvides.
Se eksemplet nedenfor:
grensesnitt A utvider B {
}
Annet enn å bruke standardmetoder for å endre et grensesnitt uten at utviklerne må endre sine nåværende programmer, kan du også utvide de eksisterende grensesnittene.
Nå har du grunnleggende kunnskap om Java -grensesnitt
Grensesnitt i Java demonstrerer abstraksjon, en av de fire søylene i objektorientert programmering. Polymorfisme er en av de fire søylene. Det refererer til evnen til en metode til å anta mange former.
Du kan implementere polymorfisme i Java gjennom metodeoverbelastning eller metodeoverstyring. Neste på Java -leselisten bør være hvordan du implementerer disse funksjonene.
Kutt ned på koden du skriver med metodeoverbelastning og overstyring.
Les neste
- Programmering
- Java
- Programmerings språk
- Programmering
Jerome er personalforfatter på MakeUseOf. Han dekker artikler om programmering og Linux. Han er også en kryptoentusiast og holder alltid oversikt over kryptoindustrien.
Abonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!
Klikk her for å abonnere