Skip to main content
Dat 1. Sem Efterår 2025
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Interfaces i Java

Hvad er et interface?

Et interface beskriver hvilke metoder en klasse skal have, men ikke hvordan de er implementeret. En klasse implementerer et interface og lover dermed at levere metoderne.

public interface KanKøre {
    void start();
    void stop();
}

public class Bil implements KanKøre {
    @Override public void start() { System.out.println("Motor start"); }
    @Override public void stop()  { System.out.println("Motor stop"); }
}

Brug som kontrakt

public void kørEnTur(KanKøre køretøj) {
    køretøj.start();
    // ... kør ...
    køretøj.stop();
}

Alle klasser der implementerer KanKøre kan bruges (Bil, Cykel-motor, Bus osv.) – det gør koden fleksibel.

Default-metoder

Interfaces kan have default-implementeringer som fælles standard.

public interface KanKøre {
    void start();
    void stop();
    default void nødStop() { stop(); }
}

Interfaces vs. abstrakte klasser

  • Interface: kontrakt for metoder; en klasse kan implementere flere interfaces.
  • Abstrakt klasse: kan have felter + fælles kode; en klasse kan kun arve én superklasse.