Kursusindhold
Java OOP
Java OOP
Hvad Er Et Interface?
Hvad nu hvis vi har brug for at arve fra mere end én klasse? Java tillader dette ved hjælp af interfaces. På trods af navnet ligner et interface meget en abstrakt klasse. Lad os se på deklarationen af et interface:
Kort sagt bruges et interface til at definere metoder, som en klasse skal implementere. Interfaces har en særskilt syntaks for oprettelse. Hvor vi brugte "public class className { }
" ved oprettelse af en klasse, ser syntaksen for oprettelse af et interface anderledes ud:
InterfaceExample.java
package com.example; public interface InterfaceExample { void methodName(); String methodThatAcceptsAndReturnsString(String parameter); }
Bemærk metodeerklæringen;
Vi bruger ikke adgangsmodifikatorer;
Vi angiver ikke metodekroppe;
Det er ikke nødvendigt at markere metoder som abstract, da vi arbejder inden for et interface;
Vi opretter ikke felter i interfaces.
Lad os overveje brugen af et Interface
ved hjælp af eksemplet med en medieafspiller.
Vi har et Interface
kaldet MediaPlayer
, som har metoderne play
, pause
og stop
. Derudover er der to klasser, der implementerer dette medieafspiller-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 oprettet et interface
og to klasser, der implementerer dette interface. Syntaksen er den samme som ved overskrivning af abstrakte metoder. Vi har overskrevet hver metode for hver klasse for at udføre dens egen specifikke funktion.
En af egenskaberne ved interfaces er, at vi kan implementere mere end ét interface. Lad os se på et eksempel:
Vehicle.java
VehicleInfo.java
Car.java
package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }
Vi har oprettet grænsefladerne Vehicle
og VehicleInfo
. Derudover har vi oprettet en klasse Car
, der implementerer begge disse grænseflader. På denne måde kan vi vælge hvilken funktionalitet der skal implementeres i klassen, hvilket understøtter objektorienteret programmeringsprincip om abstraktion.
Arbejdet med grænseflader er meget praktisk, og de anvendes i stor udstrækning. I det næste kapitel vil vi også undersøge de vigtigste forskelle mellem en grænseflade og en abstrakt klasse og lære, hvilken der er bedst at bruge i praksis!
1. Hvad er en grænseflade i Java?
2. Kan en klasse implementere flere grænseflader i Java?
3. Hvad er formålet med et interface i Java?
4. Hvilket nøgleord bruges til at implementere et interface i en klasse?
5. Hvad sker der, hvis en klasse hævder at implementere et interface, men ikke leverer implementeringer for alle dets metoder?
Tak for dine kommentarer!