Kursinnehåll
Java OOP
Java OOP
Vad är ett interface?
Vad händer om vi behöver ärva från fler än en klass? Java tillåter oss att göra detta med hjälp av interface. Trots namnet liknar ett interface mycket en abstrakt klass. Låt oss titta på hur en interface deklareras:
Enkelt uttryckt används ett interface för att definiera metoder som en klass ska implementera. Interface har en särskild syntax för skapande. Medan vi använde "public class className { }
" för att skapa en klass, ser syntaxen för att skapa ett interface annorlunda ut:
InterfaceExample.java
package com.example; public interface InterfaceExample { void methodName(); String methodThatAcceptsAndReturnsString(String parameter); }
Observera metoddeklarationen;
Vi använder inte åtkomstmodifierare;
Vi tillhandahåller inte metodkroppar;
Det finns inget behov av att märka metoder som abstract eftersom vi arbetar inom ett interface;
Vi skapar inte fält inom interface.
Låt oss titta på användningen av ett Interface
med exemplet Media Player.
Vi har ett Interface
kallat MediaPlayer
som har metoderna play
, pause
och stop
. Dessutom finns det två klasser som implementerar detta media player interface, nämligen AudioPlayer
och VideoPlayer
.
MediaPlayer.java
AudioPlayer.java
VideoPlayer.java
public interface MediaPlayer { void play(); void pause(); void stop(); }
Som du kan se skapade vi ett interface
och två klasser som implementerar detta interface. Syntaxen är densamma som när man överskuggar abstrakta metoder. Vi har överskuggat varje metod för varje klass för att utföra sin egen specifika funktion.
En av egenskaperna med interface är att vi kan implementera fler än ett interface. Låt oss titta på ett exempel:
Vehicle.java
VehicleInfo.java
Car.java
package vehicle; interface Vehicle { void startEngine(); void stopEngine(); }
Vi har skapat gränssnitten Vehicle
och VehicleInfo
. Dessutom har vi skapat en klass Car
som implementerar båda dessa gränssnitt. På detta sätt kan vi välja vilket beteende som ska implementeras i klassen, vilket kompletterar objektorienterad programmeringsprincipen abstraktion på ett bra sätt.
Att arbeta med gränssnitt är mycket smidigt och de används i stor utsträckning. I nästa kapitel kommer vi även att utforska de viktigaste skillnaderna mellan ett gränssnitt och en abstrakt klass samt lära oss vilket som är bäst att använda i praktiken!
1. Vad är ett gränssnitt i Java?
2. Kan en klass implementera flera gränssnitt i Java?
3. Vad är syftet med ett interface i Java?
4. Vilket nyckelord används för att implementera ett interface i en klass?
5. Vad händer om en klass påstår sig implementera ett interface men inte tillhandahåller implementationer för alla dess metoder?
Tack för dina kommentarer!