Navigation überspringen

Schnittstellen / Interfaces

Benötigtes Vorwissen

Java verwendet grundsätzlich das Prinzip der Einfachvererbung. Das heißt jede Klasse kann lediglich die Spezialisierung einer Mutterklasse sein.

Soll eine Klasse nun aber mehrere Typen besitzen, kommen nur die Schnittstellen in Betracht. Interface Klassen bilden die Pflichtbestandteile der Tochterklassen ab. Tochterklassen ist hier nicht ganz korrekt, aber nicht ausschlaggebend.

Interface-Klassen kennzeichnet:

  • Attribute dürfen nicht definiert werden
  • Methoden werden nicht voll aus deklariert
  • ihre Sichtbarkeit ist immer öffentlich und abstract
  • sie besitzen keinen Konstruktor

Die vereinfachte Syntax für Interface-Klassen lautet:

interface Bezeichner{ }

Beispiel

Folgendes soll implementiert werden. Worauf ist zu achten?

  1. In UML wird eine abstrakte Klasse durch kursive Schritt signalisiert.
  2. Interfaces werden als Realisierung und nicht als Spezialisierung an die Tochterklasse übergeben
  3. Interfaces werden mit Hilfe von Doppeltags über dem InterfaceNamen signalisiert.

public abstract class Mensch {
    public void laufen(){
        
    }
}
interface Undefinierbares {
    void gedankenLesen();
}
public class Spieler extends Mensch implements Undefinierbares{
    private String spielerName;
    private String spielerGeschlecht;
    private String geleseneGedanken;
    public Spieler(String spielerName){
        this.spielerName=spielerName;
    }
    public String getSpielerName(){
        return this.spielerName;
    }
    @Override public void gedankenLesen()
    {
        this.geleseneGedanken="Humbuk!";
    }
}

Anmerkung:
Die Klasse Spieler wird dazu gezwungen, die Methoden der Interface-Klasse Undefinierbares zu überschreiben.