Interfaces i Java
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"); }
}
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.
Interfaces kan have default-implementeringer som fælles standard.
public interface KanKøre {
void start();
void stop();
default void nødStop() { stop(); }
}
- 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.