Kursinnhold
Java OOP
Java OOP
Hva er et grensesnitt?
Hva om vi trenger å arve fra mer enn én klasse? Java lar oss gjøre dette med grensesnitt. Til tross for navnet, ligner et grensesnitt mye på en abstrakt klasse. La oss se på deklarasjonen av et grensesnitt:
Enkelt sagt brukes et grensesnitt til å definere metoder som en klasse skal implementere. Grensesnitt har en egen syntaks for opprettelse. Mens vi brukte "public class className { }
" når vi opprettet en klasse, ser syntaksen for å opprette et grensesnitt annerledes ut:
InterfaceExample.java
package com.example; public interface InterfaceExample { void methodName(); String methodThatAcceptsAndReturnsString(String parameter); }
Vær oppmerksom på metodeerklæringen;
Vi bruker ikke tilgangsmodifikatorer;
Vi angir ikke metodekropper;
Det er ikke nødvendig å merke metoder som abstract siden vi arbeider innenfor et interface;
Vi oppretter ikke felter i interfaces.
La oss se på bruken av et Interface
ved hjelp av et eksempel med en mediespiller.
Vi har et Interface
kalt MediaPlayer
som har metodene play
, pause
og stop
. I tillegg finnes det to klasser som implementerer dette mediespiller-interface, nemlig AudioPlayer
og VideoPlayer
.
MediaPlayer.java
AudioPlayer.java
VideoPlayer.java
public interface MediaPlayer { void play(); void pause(); void stop(); }
Som du kan se, har vi opprettet et interface
og to klasser som implementerer dette interfacet. Syntaksen er den samme som når man overstyrer abstrakte metoder. Vi har overstyrt hver metode for hver klasse slik at de utfører sin egen spesifikke funksjon.
En av egenskapene til interfaces er at vi kan implementere mer enn ett interface. La oss se på et eksempel:
Vehicle.java
VehicleInfo.java
Car.java
package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }
Vi har opprettet grensesnittene Vehicle
og VehicleInfo
. I tillegg har vi laget en klasse Car
som implementerer begge disse grensesnittene. På denne måten kan vi velge hvilken oppførsel som skal implementeres i klassen, noe som passer godt med objektorientert programmeringsprinsippene om abstraksjon.
Å arbeide med grensesnitt er svært praktisk, og de brukes mye. I neste kapittel skal vi også se på hovedforskjellene mellom et grensesnitt og en abstrakt klasse, og lære hvilken som er best å bruke i praksis!
1. Hva er et grensesnitt i Java?
2. Kan en klasse implementere flere grensesnitt i Java?
3. Hva er formålet med et interface i Java?
4. Hvilket nøkkelord brukes for å implementere et interface i en klasse?
5. Hva skjer hvis en klasse hevder å implementere et interface, men ikke gir implementasjoner for alle metodene?
Takk for tilbakemeldingene dine!