Interface

Aus SibiWiki
Zur Navigation springen Zur Suche springen


Interface (Schnittstelle)

Interfaces (Schnittstellen) werden immer dann gebraucht, wenn verschiedene Klassen eine gemeinsame Fähigkeit haben sollen.

Das kann z.B. sein:

  • Man soll die Objekte der Klassen drucken können.
  • Man soll die Objekte der Klasse vergleichen können.

Schnittstellen werden deswegen in der Regel durch Adjektive bezeichnet, z.B.

  • Printable
  • Comparable

Eine Schnittstelle (Interface)...

  • enthält keine Attribute
  • enthält nur die Spezifikationen von Methoden, nicht aber deren Implementierung.
    D.h. die Methoden von Interfaces sind alle abstrakte Methoden.

Von Schnittstellen kann man dementsprechend keine Objekte erzeugen.

Wenn eine Klasse eine Schnittstelle implementiert, dann wird das mit einem gestrichelten Vererbungspfeil dargestellt.

Beispiel

Für viele Klassen (z.B. die Klassen Person, Auto...) ist es sinnvoll, wenn die wesentlichen Informationen der Objekte gedruckt werden können - egal, um was für ein Objekt es sich handelt.

Klassendiagramm

Person und Auto implementieren Printable

siehe rechts

Implementierung

 public interface Printable{
    // Methode, die das Interface verlangt
    // nur die Signatur - keine Implementierung!
    public String printData();
 }


 public class Person implements Printable{
    // Attribute
    private String name;
    private String vorname;

    // Konstruktor
    public Person(String pName, String pVorname){
       this.name = pName;
       this.vorname = pVorname;
    }

    // Methoden
    public String getName(){
       return name;
    }

    public String getVorname(){
       return vorname;
    }
 
    // Methode, die das Interface Printable verlangt
    public String printData(){
       return "Name: " + name + "; Vorname: " + vorname;
    }
 }

Verwendung im Zentralabitur

Ein Interface wird im Zentralabitur für die Implementierung von Binären Suchbäumen verwendet.

Das dort eingesetzte Interface heißt ComparableContent.