Interfaces: Unterschied zwischen den Versionen

Aus FI-Wiki
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
== Interfaces ==
Ein '''Interface''' beschreibt eine reine Schnittstelle. Es definiert, '''was ein Objekt kann''', aber nicht '''wie'''.
Ein '''Interface''' beschreibt eine reine Schnittstelle. Es definiert, '''was ein Objekt kann''', aber nicht '''wie'''.


Interfaces enthalten nur Methodenköpfe (ab Java 8 auch Default- und static-Methoden). Eine Klasse, die ein Interface implementiert, '''verpflichtet''' sich, alle Methoden zu definieren.
Interfaces enthalten nur Methodenköpfe (ab Java 8 auch Default- und static-Methoden). Eine Klasse, die ein Interface implementiert, '''verpflichtet''' sich, alle Methoden zu definieren.


=== Eigenschaften ===
== Eigenschaften ==


* Wird mit dem Schlüsselwort '''interface''' deklariert
* Wird mit dem Schlüsselwort '''interface''' deklariert
* Methoden sind standardmäßig '''public''' und '''abstrakt'''
* Methoden sind standardmäßig '''public''' und '''abstrakt'''
* kann nur Konstanten enthalten, keine Variablen
* Wird mit '''implements''' eingebunden
* Wird mit '''implements''' eingebunden
* Eine Klasse kann mehrere Interfaces implementieren
* Eine Klasse kann mehrere Interfaces implementieren


=== Beispiel: Interface ===
== Beispiel: Interface ==


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
Zeile 20: Zeile 19:
</syntaxhighlight>
</syntaxhighlight>


=== Beispiel: Implementierende Klassen ===
== Beispiel: Implementierende Klassen ==


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
Zeile 37: Zeile 36:
} </syntaxhighlight>
} </syntaxhighlight>


=== Verwendung ===
== Verwendung ==


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
Zeile 46: Zeile 45:
b2.bewege(); // Fahrrad rollt </syntaxhighlight>
b2.bewege(); // Fahrrad rollt </syntaxhighlight>


=== Vorteil von Interfaces ===
== Vorteil von Interfaces ==


* Erlauben '''Polymorphie''' über verschiedene Klassen hinweg
* Erlauben '''Polymorphie''' über verschiedene Klassen hinweg

Aktuelle Version vom 12. Januar 2026, 13:34 Uhr

Ein Interface beschreibt eine reine Schnittstelle. Es definiert, was ein Objekt kann, aber nicht wie.

Interfaces enthalten nur Methodenköpfe (ab Java 8 auch Default- und static-Methoden). Eine Klasse, die ein Interface implementiert, verpflichtet sich, alle Methoden zu definieren.

Eigenschaften

  • Wird mit dem Schlüsselwort interface deklariert
  • Methoden sind standardmäßig public und abstrakt
  • kann nur Konstanten enthalten, keine Variablen
  • Wird mit implements eingebunden
  • Eine Klasse kann mehrere Interfaces implementieren

Beispiel: Interface

interface Bewegbar {
    void bewege();
}

Beispiel: Implementierende Klassen

class Auto implements Bewegbar {
    @Override
    public void bewege() {
        System.out.println("Auto fährt");
    }
}

class Fahrrad implements Bewegbar {
    @Override
    public void bewege() {
        System.out.println("Fahrrad rollt");
    }
}

Verwendung

Bewegbar b1 = new Auto();
Bewegbar b2 = new Fahrrad();

b1.bewege(); // Auto fährt
b2.bewege(); // Fahrrad rollt

Vorteil von Interfaces

  • Erlauben Polymorphie über verschiedene Klassen hinweg
  • Trennen Schnittstelle und Implementierung
  • Ermöglichen gemeinsame Behandlung sehr unterschiedlicher Objekte